おはようございます、フォームデータajaxで複数のファイルをアップロードしてテキストフィールドと一緒に
私はフォームに複数のフィールドがあります。また、フォームはajaxを使用してフォームデータメソッドを介してPHPファイルに送信されています。
以下は、フォームデータを送信するjavascriptコードです。
$(".update").click(function(){
$.ajax({
url: 'post_reply.php',
type: 'POST',
contentType:false,
processData: false,
data: function(){
var data = new FormData();
data.append('image',$('#picture').get(0).files[0]);
data.append('body' , $('#body').val());
data.append('uid', $('#uid').val());
return data;
}(),
success: function(result) {
alert(result);
},
error: function(xhr, result, errorThrown){
alert('Request failed.');
}
});
$('#picture').val('');
$('#body').val('');
});
そして、以下の実際のフォームです:
<textarea name=body id=body class=texarea placeholder='type your message here'></textarea>
<input type=file name=image id=picture >
<input name=update value=Send type=submit class=update id=update />
このフォームと、彼らがそうであるようにJavaScriptの作業良いです。しかし、この1つのtype = fileフィールド属性を使用して複数のファイルをphpファイルにアップロードできるようにしようとしています。今のように、一度に1つのファイルしか取ることができません。複数のファイルのアップロードを処理できるように、フォームとJavaScriptコードの両方を調整するにはどうすればよいですか?
ご協力いただければ幸いです。
ありがとうございます!
は実際には、しかし、1つの若干の問題で動作するようです。コンピュータからファイルを選択し、送信ボタンを押すと、アラート機能は機能しますが、ブラウザはリロードされているようです。また、読み込み中のアイコンが回転しています。送信ボタンをクリックすると、そのファイルがPHPファイルに送信され、警告ボックスが表示されます。ブラウザの更新ボタンを押すと、情報を再送信するかどうか尋ねられません。現在、ブラウザは私に再提出したいかどうか尋ねます.....修正する方法は? ..ボタンがクリックされたとき、私はブラウザの読み込みを一切しません。 – maraj
私は自分の答えを更新しました。今は大丈夫です。フォームの再ロードを防ぐには、 'function(e)'と 'e.preventDefault();'のようにイベントパラメタを関数に追加する必要があります。更新された回答をご覧ください。 – loelsonk
@loelsonkブラウズされた複数のファイルを保存するためにあなたのリンクをたどりました。私はシステムから1つ以上のファイルを選んで、関数内のテキストに以下のような警告を出しました:jQuery.each(jQuery( '#file')[0] .files、function(i、file){ data.append + i、file); }); しかし、警告は1回だけです。最後に閲覧したファイルのみを保存することができます。閲覧したファイルをすべて保存するにはどうすればいいですか? –