PHP-də checkbox-lardan istifadə nüansları
Fərz edək ki, formada yalnız bir checkbox var:
<form action="" method="GET">
<input type="checkbox" name="flag">
<input type="submit">
</form>
Fərz edək ki, formanın emal kodu belə görünür:
<?php
if (!empty($_GET)) { // forma göndərilibsə
if (isset($_GET['flag'])) { // əgər qəfəs işarələnibsə
echo 'işarələnib';
} else {
echo 'işarələnməyib';
}
}
?>
Bizi problem gözləyir - əgər qəfəs işarələnməyibsə,
onda, formada checkbox-dan başqa digər
elementlər olmadığı üçün, $_GET-də boş
massiv olacaq. Bu o deməkdir ki, formanın emal
kodunda biz formanın göndərilməsini yoxlayan
ilk if-ə daxil olmayacağıq.
Problemin həlli üçün xüsusi bir üsuldan istifadə olunur: checkbox-ımızla eyni adda gizli bir input yaradırlar. Bu zaman gizli input-un dəyəri sıfır, checkbox-ın dəyəri isə bir qoyulur:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input type="checkbox" name="flag" value="1">
<input type="submit">
</form>
Bu halda belə olacaq. Əgər checkbox işarələnməyibsə, serverə yalnız gizli input-un dəyəri göndəriləcək. Əgər isə checkbox işarələnibsə, serverə eyni adla iki dəyər göndəriləcək. Amma, checkbox-ın dəyəri ikinci olduğu üçün, o sadəcə birincinin üzərini yazacaq.
Beləliklə, indi bizim checkbox serverə ya sıfır, ya da bir göndərəcək:
<?php
var_dump($_GET['flag']); // '0' və ya '1'
?>
Bunu yoxlamada istifadə edək:
<?php
if (!empty($_GET)) {
if ($_GET['flag'] === '1') {
echo 'işarələnib';
} else {
echo 'işarələnməyib';
}
}
?>
Qəfəs vasitəsilə istifadəçidən soruşun ki,
onun artıq 18 yaşı var ya yox. Əgər
varsa, ona sayta giriş icazəsi verin, yoxdursa - verməyin.