PHP tidak secara otomatis mengubah beberapa informasi kotak centang dengan nama yang sama menjadi array seperti yang dilakukan ASP, sehingga menimbulkan ketidaknyamanan dalam penggunaan. Namun masih ada solusinya yaitu menggunakan javascript untuk melakukan preprocessing. Beberapa kotak centang dengan nama yang sama masih ada dalam bentuk array di JavaScript, jadi sebelum mengirimkan formulir, Anda bisa menggunakan JavaScript untuk menggabungkan informasi di kotak centang ke dalam array karakter dan menetapkannya ke elemen tersembunyi di formulir, lalu gunakan PHP Fungsi meledak mem-parsing array ini, sehingga informasi kotak centang dapat ditransfer. Di bawah ini adalah contohnya.
Misalkan ada form seperti ini:
<form name="form1" id="form1" method="post" action="myphp.php" onSubmit="return Checker()">
<input type="kotak centang" nama="item" value="1">1<br>
<input type="kotak centang" nama="item" value="2">2<br>
<input type="kotak centang" nama="item" value="3">3<br>
<input type="kotak centang" nama="item" value="4">4<br>
<tipe masukan="tersembunyi" nama="item" nilai="">
<input type="kirim" value="Kirim">
</form>
Formulir ini memiliki empat kotak centang yang namanya semuanya item. Ketika pengguna mengklik tombol Kirim, fungsi Pemeriksa akan dipanggil, dan jika Pemeriksa mengembalikan nilai benar, formulir akan dikirimkan formulir tidak akan diserahkan. Fungsi Checker disini adalah fungsi preprocessing yang ingin kita tulis. Tambahkan javascript berikut di bagian header HTML:
<script bahasa = "javascript">
<!--
pemeriksa fungsi()
{
form1.item.nilai = "";
if ( !form1.item.length ) // Hanya ada satu kotak centang, form1.item.length = tidak terdefinisi
{
if (form1.item.diperiksa)
form1.item.nilai = form1.item.nilai;
}
kalau tidak
{
untuk ( i = 0 ; i < form1.item.length ; i++ )
{
if (form1.item(i).checked) // Ada kotak yang dicentang di kotak centang {
form1.items.value = form1.item(i).value;
untuk ( j = i + 1 ; j < form1.item.length ; j++ )
{
if (form1.item(j).dicentang)
{
form1.items.value += " "; //Gunakan spasi sebagai pemisah form1.items.value += form1.item(j).value;
}
}
merusak;
}
}
}
kembali benar;
}
-->
</script>
Gunakan
pernyataan ini di myphp.php:
$items = meledak(" ", $HTTP_POST_VARS["items"]);
Opsi-opsi ini dapat dipisahkan menjadi array. Perlu diperhatikan bahwa nilai dalam opsi tidak boleh berisi pembatas (di sini, spasi).