Apabila menulis aplikasi web, anda selalunya perlu menggunakan Ajax untuk menyerahkan borang atau menggunakan jenis data yang kompleks seperti tatasusunan untuk pemprosesan. Dalam PHP, adalah mudah untuk menerima parameter jenis data asas, tetapi menerima parameter jenis tatasusunan memerlukan beberapa pemprosesan khas. Artikel seterusnya akan membawa anda ke perbincangan mendalam tentang cara PHP menerima parameter tatasusunan yang dikemukakan oleh Ajax.
1. Beberapa cara untuk menyerahkan tatasusunan dengan Ajax
Apabila pelanggan menggunakan alatan seperti jQuery untuk membuat permintaan Ajax, anda boleh Tatasusunan bersiri dan diserahkan. Contohnya, contoh berikut:
var data = { name: 'John', age: 25, hobbies: ['swimming', 'reading', 'coding'] }; $.ajax({ type: 'POST', url: 'test.php', data: {myData: JSON.stringify(data)}, success: function(res) { console.log(res); } });
Di bahagian pelayan, anda boleh menggunakan fungsi json_decode() untuk memulihkan rentetan JSON yang diterima ke dalam tatasusunan, seperti berikut:
$data = json_decode($_POST['myData'], true); $name = $data['name']; $age = $data['age']; $hobbies = $data['hobbies'];
Kaedah ini mudah Secara langsung, tetapi sila ambil perhatian: jumlah data yang diserahkan tidak boleh terlalu besar, jika tidak, ia akan menjejaskan prestasi.
Menggunakan objek FormData boleh mencapai penyerahan data borang yang lebih fleksibel. Contohnya, contoh berikut:
var data = { name: 'John', age: 25, hobbies: ['swimming', 'reading', 'coding'] }; var formData = new FormData(); formData.append('name', data.name); formData.append('age', data.age); $.each(data.hobbies, function(index, item) { formData.append('hobbies[]', item); }); $.ajax({ type: 'POST', url: 'test.php', data: formData, contentType: false, processData: false, success: function(res) { console.log(res); } });
Di bahagian pelayan, anda boleh menggunakan $_POST dan $_FILES untuk menerima data yang diserahkan oleh FormData, seperti berikut:
$name = $_POST['name']; $age = $_POST['age']; $hobbies = $_POST['hobbies'];
Ia harus diperhatikan bahawa: contentType dan Parameter processData mesti ditetapkan kepada palsu, jika tidak, penyerahan akan gagal.
Jika anda menggunakan alatan seperti jQuery untuk penyerahan Ajax, anda boleh menghantar tatasusunan terus ke parameter data. Contohnya, contoh berikut:
var data = { name: 'John', age: 25, hobbies: ['swimming', 'reading', 'coding'] }; $.ajax({ type: 'POST', url: 'test.php', data: data, success: function(res) { console.log(res); } });
Di bahagian pelayan, anda boleh menggunakan $_POST untuk menerima parameter jenis tatasusunan, seperti berikut:
$name = $_POST['name']; $age = $_POST['age']; $hobbies = $_POST['hobbies'];
Kaedah ini mudah dan cekap , tetapi tidak cukup fleksibel.
2. Terima parameter tatasusunan
Tidak kira kaedah yang anda gunakan untuk menyerahkan parameter tatasusunan, pelayan memerlukan pemprosesan khas. PHP menyediakan pelbagai kaedah untuk menerima parameter tatasusunan.
Jika anda menggunakan siri atau secara terus menghantar tatasusunan untuk penyerahan Ajax, anda boleh menggunakan $_POST untuk menerima parameter tatasusunan, seperti berikut:
$name = $_POST['name']; $age = $_POST['age']; $hobbies = $_POST['hobbies'];
Perlu diambil perhatian bahawa PHP hanya akan menerima 1000 elemen tatasusunan pertama secara lalai sebagai tambahan, jika tatasusunan berbilang dimensi diserahkan, ia perlu diproses dalam format JSON.
Jika jumlah data yang diserahkan agak besar, anda boleh menggunakan fungsi file_get_contents untuk menerima parameter tatasusunan, seperti berikut:
$data = file_get_contents('php://input'); $jsonData = json_decode($data, true); $name = $jsonData['name']; $age = $jsonData['age']; $hobbies = $jsonData['hobbies'];
Ini Kaedah boleh menerima sejumlah besar data dan lebih fleksibel.
Gunakan php://input untuk turut menerima parameter tatasusunan, seperti berikut:
$data = file_get_contents('php://input'); parse_str($data, $arrayData); $name = $arrayData['name']; $age = $jsonData['age']; $hobbies = $arrayData['hobbies'];
Perkara untuk nota Ya: Data yang diterima dengan cara ini adalah daripada jenis rentetan dan memerlukan beberapa jenis penukaran.
3. Ringkasan
Apabila menggunakan Ajax untuk menyerahkan parameter tatasusunan, anda perlu memberi perhatian kepada isu seperti kaedah penghantaran, kaedah penerimaan dan jumlah data. Jika jumlah data adalah kecil, anda boleh menggunakan bersiri atau FormData untuk menyerahkannya jika jumlah data adalah besar, anda boleh menggunakan fungsi seperti file_get_contents dan parse_str untuk menerimanya. Melalui pengenalan artikel ini, saya percaya pembaca telah pun memahami cara PHP menerima parameter tatasusunan yang dikemukakan oleh Ajax. Tetapi perlu diingatkan bahawa beberapa penapisan dan pengesahan perlu dilakukan dalam kod untuk meningkatkan keselamatan data.
Atas ialah kandungan terperinci Bagaimana untuk menerima parameter tatasusunan yang diserahkan oleh Ajax dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!