Bagaimana untuk menerima parameter tatasusunan yang diserahkan oleh Ajax dalam PHP

PHPz
Lepaskan: 2023-04-26 15:48:36
asal
1258 orang telah melayarinya

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

  1. Gunakan siri

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);
    }
});
Salin selepas log masuk

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'];
Salin selepas log masuk

Kaedah ini mudah Secara langsung, tetapi sila ambil perhatian: jumlah data yang diserahkan tidak boleh terlalu besar, jika tidak, ia akan menjejaskan prestasi.

  1. Gunakan FormData

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);
    }
});
Salin selepas log masuk

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'];
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ia harus diperhatikan bahawa: contentType dan Parameter processData mesti ditetapkan kepada palsu, jika tidak, penyerahan akan gagal.

  1. Lepasi tatasusunan terus

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);
    }
});
Salin selepas log masuk

Di bahagian pelayan, anda boleh menggunakan $_POST untuk menerima parameter jenis tatasusunan, seperti berikut:

$name = $_POST['name'];
$age = $_POST['age'];
$hobbies = $_POST['hobbies'];
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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.

  1. Gunakan $_POST

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'];
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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.

  1. Gunakan file_get_contents

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'];
Salin selepas log masuk

Ini Kaedah boleh menerima sejumlah besar data dan lebih fleksibel.

  1. Gunakan php://input

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'];
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!