PHP-de checkbox-laryň ulanylyşynyň aýratynlyklary
Göçüräňizde diňe bir checkbox bolsun:
<form action="" method="GET">
<input type="checkbox" name="flag">
<input type="submit">
</form>
Göçüräniň işleniş kody şeýle görünsin:
<?php
if (!empty($_GET)) { // göçürä iberilen bolsa
if (isset($_GET['flag'])) { // checkbox belgilenen bolsa
echo 'belgilendi';
} else {
echo 'belgilenmedi';
}
}
?>
Biz bir meselä duçar bolaris - eger checkbox belgilenmese,
onda, göçüräde checkbox-dan başga elementler bolmadygy üçin,
$_GET-de boş massiw ýatar. Bu ýagdaýda, göçüräni işleýän
kodymyzda, formanyň iberilmegini barlap görýän birinji if
şertine düşmez.
Bu meseläni çözmek üçin aýratyn bir usul ulanylýar: checkbox-ymyz bilen bir atly gizlin input döredilýär. Bu ýagda gizlin input-yň bahasyna nol, checkbox-yň bahasyna bolsa bir goýulýar:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input type="checkbox" name="flag" value="1">
<input type="submit">
</form>
Bu ýagda aşakdaky ýagdaý ýüze çykar. Eger checkbox belgilenmese, onda serwere diňe gizlin input-yň bahasy iberiler. Eger bolsa checkbox belgilenen bolsa, onda serwere bir atly iki sany baha iberiler. Emma, checkbox-yň bahasy ikinji boljakdygy üçin, ol birinjisiniň üstünden ýazar.
Indi, bizim checkbox-ymyz serwere ýa nol, ýa-da bir bahasyny iberer:
<?php
var_dump($_GET['flag']); // '0' ýa-da '1'
?>
Muny barlagymyzda ulanalyň:
<?php
if (!empty($_GET)) {
if ($_GET['flag'] === '1') {
echo 'belgilendi';
} else {
echo 'belgilenmedi';
}
}
?>
Checkbox arkaly ulanyjydan, onuň
18 ýaşy ýetendigini ýa-da
ýetmedigini soraň. Eger ýeten bolsa,
onda saýda girmäge rugsat beriň,
ýetmedik bolsa rugsat bermäň.