Bekerja dengan Nama Medan Borang Pendua dalam Permintaan POST
Apabila bekerja dengan borang web, adalah perkara biasa untuk menghadapi situasi di mana berbilang elemen input berkongsi atribut nama yang sama. Ini menimbulkan persoalan: Bolehkah tatasusunan $_POST PHP masih menangkap nilai semua medan ini dengan berkesan?
Memahami Tingkah Laku PHP
Untuk menjawab soalan ini, adalah penting untuk memahami bagaimana PHP mengendalikan data borang. Apabila borang diserahkan menggunakan kaedah POST, PHP akan menghuraikan kandungan permintaan mentah dan mengisi tatasusunan $_POST berdasarkan pasangan nilai nama yang diserahkan.
Kes Nama Duplikat
Dalam kes nama medan pendua, PHP hanya akan menyimpan nilai elemen input terakhir ditemui dengan nama itu. Ini bermakna bahawa nilai semua medan sebelumnya dengan nama yang sama akan hilang.
Penyelesaian: Menggunakan Tatasusunan
Untuk mengurangkan isu ini dan menangkap nilai semua medan pendua, PHP menyediakan penyelesaian mudah: tetapkan atribut nama dengan kurungan segi empat sama, seperti "name='foo[]'". Ini akan mengarahkan PHP untuk merawat medan input sebagai tatasusunan, membenarkannya menyimpan berbilang nilai untuk nama yang sama.
Sebagai contoh, pertimbangkan borang berikut:
<form method="post"> <input name="foo[]" value="first value"> <input name="foo[]" value="second value"> <input name="foo[]" value="third value"> <input type="submit"> </form>
Apabila borang ini diserahkan, tatasusunan $_POST akan mengandungi entri "foo" dengan tatasusunan tiga nilai ("nilai pertama", "nilai kedua", dan "ketiga value").
Mengakses Badan Permintaan Mentah
Dalam senario di mana bekerja dengan tatasusunan tidak mencukupi, PHP menawarkan kaedah alternatif: mengakses badan permintaan mentah . Ini boleh dicapai menggunakan fungsi file_get_contents('php://input'). Dengan menghuraikan kandungan mentah, anda boleh mengekstrak dan memproses nilai medan pendua secara manual seperti yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah PHP Mengendalikan Nama Medan Borang Pendua dalam Permintaan POST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!