Bagaimana untuk menggunakan Ajax untuk memuat naik data dan fail pada masa yang sama?
P粉012875927
2023-08-20 14:33:32
<p>Saya menggunakan jQuery dan Ajax untuk menyerahkan data dan fail, tetapi saya tidak pasti cara menghantar kedua-dua data dan fail dalam satu bentuk? </p>
<p>Saya pada masa ini menggunakan kedua-dua kaedah dengan cara yang hampir sama, tetapi cara mengumpul data ke dalam tatasusunan adalah berbeza, data menggunakan <code>.serialize();</code> dan fail menggunakan <code> ;= new FormData($(this)[0]);</code></p>
<p>Adakah mungkin untuk menggabungkan kedua-dua kaedah ini untuk memuat naik fail dan data dalam satu bentuk melalui Ajax? </p>
<p><strong>Data jQuery, Ajax dan html</strong></p>
<pre class="brush:php;toolbar:false;">$("form#data").submit(function(){
var formData = $(this).serialize();
$.ajax({
url: window.location.pathname,
jenis: 'POST',
data: formData,
async: palsu,
kejayaan: fungsi (data) {
makluman(data)
},
cache: palsu,
Jenis kandungan: palsu,
processData: palsu
});
kembali palsu;
});
<form id="data" method="post">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<butang>Serah</button>
</form></pre>
<p><strong>JQuery Dokumentasi, Ajax dan html</strong></p>
<pre class="brush:php;toolbar:false;">$("form#files").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: window.location.pathname,
jenis: 'POST',
data: formData,
async: palsu,
kejayaan: fungsi (data) {
makluman(data)
},
cache: palsu,
Jenis kandungan: palsu,
processData: palsu
});
kembali palsu;
});
<form id="files" method="post" enctype="multipart/form-data">
<input name="image" type="file" />
<butang>Serah</button>
</form></pre>
<p>Bagaimanakah saya boleh menggabungkan perkara di atas supaya saya boleh menghantar data dan fail dalam satu bentuk melalui Ajax? </p>
<p>Matlamat saya adalah untuk dapat menghantar semua borang ini bersama-sama melalui Ajax, adakah ini mungkin?</p>
<pre class="brush:php;toolbar:false;"><form id="datafiles" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input name="image" type="file" />
<butang>提交</button>
</form></pre>
<p><br /></p>
Pilihan lain ialah menggunakan iframe dan tetapkan sasaran borang padanya.
Anda boleh mencuba ini (ia menggunakan jQuery):
Ia berfungsi dalam semua penyemak imbas dan anda tidak perlu membuat siri atau menyediakan data. Satu kelemahan ialah anda tidak boleh memantau kemajuan.
Selain itu, sekurang-kurangnya untuk Chrome, permintaan itu tidak muncul di bawah tab "xhr" dalam alat pembangun, tetapi di bawah "doc".
Masalah yang saya hadapi ialah menggunakan pengecam jQuery yang salah.
Anda boleh menggunakan borang menggunakan ajax untuk memuat naik data dan fail.
PHP + HTML
jQuery + Ajax
Versi ringkas