PHPде чекбоксторду колдонуунун нюанстары
Биздин формада бир гана чекбокс бар деп коёлу:
<form action="" method="GET">
<input type="checkbox" name="flag">
<input type="submit">
</form>
Биздин форманы иштетүү коду төмөнкүдөй болсун:
<?php
if (!empty($_GET)) { // эгер форма жиберилсе
if (isset($_GET['flag'])) { // эгер белги коюлса
echo 'белгиленген';
} else {
echo 'белгиленбеген';
}
}
?>
Бизди көйгөй күтөт - эгер чекбокс белгиленбесе,
анда, формада чекбокстон башка элементтер жок болгондуктан,
$_GET массивде бош массив турат.
Бул форманы иштетүү кодунда биз форманын жиберилгендигин
текшерген биринчи ifке кире албайбыз дегенди билдирет.
Бул көйгөйдү чечүү үчүн атайын ыкма колдонулат: чекбоксубуздун атындай эле аттагы жашырын инпут түзүлөт. Бул учурда жашырын инпуттун мааниси нөл, чекбокстун мааниси бир болуп коюлат:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input type="checkbox" name="flag" value="1">
<input type="submit">
</form>
Ушундай учурда төмөнкүдөй болот. Эгер чекбокс белгиленбесе, анда серверге жашырын инпуттун мааниси гана жиберилет. Эгер чекбокс белгиленсе, анда серверге бир эле ат менен эки маани жиберилет. Бирок, чекбокстун мааниси экинчи болгондуктан, ал биринчисин жок кылат.
Ошентип, эми биздин чекбокс серверге нөл же бир жиберет:
<?php
var_dump($_GET['flag']); // '0' же '1'
?>
Муну текшерүүбүздө колдонолу:
<?php
if (!empty($_GET)) {
if ($_GET['flag'] === '1') {
echo 'белгиленген';
} else {
echo 'белгиленбеген';
}
}
?>
Чекбокс аркылуу колдонуучудан
18 жашка жеткенин же жетпегенин сураңыз.
Эгер жетсе, ага сайтка кирүүгө уруксат бериңиз,
эгер жетпесе - уруксат бербеңиз.