PHP-ում checkbox-ների օգտագործման առանձնահատկությունները
Ենթադրենք մեր ֆորմայում կա միայն 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-ինը: Ընդ որում թաքնված input-ի արժեքը դնում են զրո, իսկ checkbox-ինը՝ մեկ:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input type="checkbox" name="flag" value="1">
<input type="submit">
</form>
Այս դեպքում կստացվի հետևյալը. Եթե checkbox-ը նշված չէ, ապա սերվեր կուղարկվի միայն թաքնված input-ի արժեքը: Եթե checkbox-ը նշված է, ապա սերվեր կուղարկվեն երկու արժեքներ մեկ անունով: Բայց, քանի որ checkbox-ի արժեքը կլինի երկրորդ, ապա այն պարզապես կփոխարինի առաջինը:
Այսպիսով, այժմ մեր checkbox-ը կուղարկի սերվեր կամ զրո, կամ մեկ:
<?php
var_dump($_GET['flag']); // '0' կամ '1'
?>
Օգտագործենք սա մեր ստուգման մեջ.
<?php
if (!empty($_GET)) {
if ($_GET['flag'] === '1') {
echo 'նշված է';
} else {
echo 'նշված չէ';
}
}
?>
Օգտագործելով checkbox հարցրեք օգտատիրոջից,
արդյոք նա արդեն 18 տարեկան է, թե ոչ: Եթե
այո, ապա թույլատրեք նրան մուտք կայք, իսկ եթե
ոչ՝ ապա մի թույլատրեք: