Нијанси на користење на checkboxes во PHP
Нека во нашата форма има само checkbox:
<form action="" method="GET">
<input type="checkbox" name="flag">
<input type="submit">
</form>
Нека кодот за обработка на нашата форма изгледа вака:
<?php
if (!empty($_GET)) { // ако формата е испратена
if (isset($_GET['flag'])) { // ако checkbox-от е означен
echo 'означен';
} else {
echo 'не е означен';
}
}
?>
Ќе наидеме на проблем - ако checkbox-от не е означен,
тогаш, бидејќи во формата освен checkbox нема други
елементи, во $_GET ќе лежи празен
низа. Ова значи дека во кодот за обработка
на формата нема да влеземе во првиот if, кој проверува
дали формата е испратена.
За решавање на проблемот се користи посебен прием: се создава скриено поле (input) со исто име, како и нашиот checkbox. При тоа, вредноста на скриеното поле се поставува на нула, а на checkbox-от - на еден:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input type="checkbox" name="flag" value="1">
<input type="submit">
</form>
Во таков случај ќе се добие следново. Ако checkbox-от не е означен, тогаш на серверот ќе се испрати само вредноста на скриеното поле. Ако checkbox-от е означен, тогаш на серверот ќе се испратат двете вредности со едно име. Но, бидејќи вредноста на checkbox-от ќе биде втора, таа едноставно ќе ја пребрише првата.
Значи, сега нашиот checkbox ќе испраќа на сервер или нула, или еден:
<?php
var_dump($_GET['flag']); // '0' или '1'
?>
Ќе го искористиме ова во нашата проверка:
<?php
if (!empty($_GET)) {
if ($_GET['flag'] === '1') {
echo 'означен';
} else {
echo 'не е означен';
}
}
?>
Со помош на checkbox прашајте го корисникот
дали има 18 години или не. Ако
има, дозволете му пристап на сајтот, а ако
нема - не дозволувајте.