私はファイルアップロードを含む動的に生成されたフォームを送信しようとしています。 この目的のために、DB接続を介してフォームフィールドを取得しています。 1つのフィールドで複数のオプションを選択することができます。フォームはこのような何かを見ることができます:私は、フォームを送信するためにFORMDATA-オブジェクトを使用する場合formDataと "複数選択"
<form>
<input type="text" name="xyz"> </input>
<input type="file" name="xyzfile"> </input>
<select multiple name="...">
<option value="...">1</option>
<option value="...">2</option>
...
<option>x</option>
</select>
<select name="...">
<option value="...">1</option>
<option value="...">2</option>
</select>
残念ながら、与えられたフィールドのための唯一の最後の選択オプションが送信されます。 "multiple"属性は何とか無視されます。
これは私のコードです:私はメタフォーム-オブジェクトを調べると
var pId = '1';
metaForm = $('#metaForm')[0];
formData = new FormData(metaForm);
formData.append('a','saveInstance');
formData.append('pId', pId);
$.ajax({
type: 'POST',
url: 'x.php',
contentType: false,
processData: false,
data: formData,
success: function (response) {
...
、選択されたすべてのエントリは、= true属性を選択しました。 formDataコンストラクタを使用しているときに、1つの選択フィールドに対してすべての選択されたエントリを取得するオプションがありますか? これはformData.append()を使用して手動で行う必要がありますか?もしそうなら、コンストラクタを使用してappend()を使用しても重複がないことを確認するにはどうすればよいですか?
これはやや紛らわしいです。
をここにちょうどあなたが '
あなたは正しいです!私はそれを考えなかった。あなたのコメントは実際には答え、ありがとう! – DCH
@Kaiido、答えは基本的に他の質問と同じですが、私はこの質問は正確に重複しているとは反対します。もう一つの質問はチェックボックスについてです。これは複数の選択についてです。私は複数の選択のためにこれを解決する方法が不思議だったので、この質問の文脈であなたの1つの文の答えは、他のものに対する受け入れられた答えよりもはるかに役立っていました。 – peregrination