2017-02-07 15 views
2

私はファイルアップロードを含む動的に生成されたフォームを送信しようとしています。 この目的のために、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()を使用しても重複がないことを確認するにはどうすればよいですか?

これはやや紛らわしいです。

+2

をここにちょうどあなたが '