Nuansa Penggunaan Checkbox di PHP
Misalkan dalam form kita hanya ada checkbox:
<form action="" method="GET">
<input type="checkbox" name="flag">
<input type="submit">
</form>
Misalkan kode pemrosesan form kita terlihat seperti ini:
<?php
if (!empty($_GET)) { // jika form telah dikirim
if (isset($_GET['flag'])) { // jika checkbox dicentang
echo 'dicentang';
} else {
echo 'tidak dicentang';
}
}
?>
Kita akan menghadapi masalah - jika checkbox tidak dicentang,
maka, karena di form tidak ada elemen lain selain checkbox,
array kosong akan berada di $_GET. Ini berarti, dalam kode pemrosesan
form kita tidak akan masuk ke if pertama, yang memeriksa
pengiriman form.
Untuk menyelesaikan masalah ini, digunakan teknik khusus: buat input tersembunyi dengan nama yang sama, seperti checkbox kita. Dalam hal ini nilai input tersembunyi diatur ke nol, dan checkbox - ke satu:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input type="checkbox" name="flag" value="1">
<input type="submit">
</form>
Dalam kasus seperti ini, yang terjadi adalah sebagai berikut. Jika checkbox tidak dicentang, maka hanya nilai input tersembunyi yang akan dikirim ke server. Jika checkbox dicentang, maka kedua nilai dengan satu nama akan dikirim ke server. Tapi, karena nilai checkbox akan menjadi yang kedua, maka nilainya akan menggantikan yang pertama.
Jadi, sekarang checkbox kita akan mengirim ke server nol atau satu:
<?php
var_dump($_GET['flag']); // '0' atau '1'
?>
Mari gunakan ini dalam pemeriksaan kita:
<?php
if (!empty($_GET)) {
if ($_GET['flag'] === '1') {
echo 'dicentang';
} else {
echo 'tidak dicentang';
}
}
?>
Dengan menggunakan checkbox, tanyakan kepada pengguna,
apakah dia sudah berusia 18 tahun atau belum. Jika
ya, izinkan dia mengakses situs, dan jika
tidak - jangan izinkan.