Uloženie zvolenej hodnoty v checkboxe po odoslaní v PHP
Poďme teraz spraviť to, aby hodnota
checkboxu bola uložená po odoslaní. Na
to skontrolujeme, či $_GET['flag']
existuje (čiže došlo k odoslaniu formulára)
a rovná sa jednej (čiže začiarkavacie políčko je označené).
Ak sú tieto dve podmienky splnené, vypíšeme
v checkboxe atribút checked:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag" <?php
if (isset($_GET['flag']) and $_GET['flag'] === '1')
echo 'checked';
?>
>
<input type="submit">
</form>
Kontrolu je možné zjednodušiť, ak presne vieme,
že skrytý input prenáša 0. V takom
prípade, ak checkbox nie je označený, tak v $_GET['flag']
bude '0', a ak ešte nedošlo k odoslaniu
formulára, tak tam bude null.
V oboch týchto prípadoch by sme nemali vypísať
checked. Oba tieto prípady vieme
zachytiť funkciou empty. Takýmto spôsobom
môžeme skontrolovať, že $_GET['flag']
nie je prázdny, a len v tomto prípade vypísať checked:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag"
value="1"
<?php if (!empty($_GET['flag'])) echo 'checked' ?>
>
<input type="submit">
</form>
Urobte tri checkboxy, ktoré budú uchovávať svoju hodnotu po odoslaní.