3
ハローみんな私のhtmlコード:jqueryのAjaxのポストファイル、複数のファイルやテキスト入力
<form action="post.php" enctype="multipart/form-data" method="post">
<input type="text" name="name" id=""><br>
<input type="file" name="poster" id="poster"><br>
<input type="file" name="scene[]" id="scene" multiple><br>
<input type="submit" value="POST">
</form>
あなたは、単一のファイル、複数のファイルを参照してください、と私は1つのテキスト値を持っているよう。この値 'ajax'は一度に送信したい。 「JQuery」を使用しています。
私は、他の同様のソリューションを見て、それは私の問題 を修正し、私の悪い英語をsoryませんでしたどのような方法で
$(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
var file_data = $('#poster').prop('files')[0];
var form = $('form').serialize();
var form_data = new FormData();
$.each($('input[name="scene[]"]'),function(i, obj) {
$.each(obj.files,function(j,file){
form_data.append('photo['+i+']', file);
})
});
form_data.append(form);
form_data.append('file',file_data);
alert(form_data);
$.ajax({
url:'post.php',
cache:false,
contentType:false,
processData:false,
async:false,
data:form_data,
type:'post',
success:function(answ){
$('#result').html(answ);
}
})
})
})
を実行することはできません。
TY非常に:これを試してみてください、と述べているすべてで
。新しいFormData(this);私はそれについて考えなかった。 omg – vulkan
問題ないです。喜んで助けてください。参考までに、ここでは[MDNのFormDataエントリ](https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData) –
@ RoryMcCrossan、これは要素を使ってフォームの名前と値のペアを作成します'name属性。私は、サーバー側のコントロールの要素の名前を混乱させるASP.NETを使用しています。したがって、私は要素のIDを使用して、名前で値のペアを構築します(すべてのフォームコントロールをIDでループします)。テキストコントロールをシリアル化してファイルデータをフォームデータに追加する方法はありますか?私はOPがしようとしていたので、手動でそれを行うことはOKです。前もって感謝します! –