Uložení vybrané hodnoty v zaškrtávacím políčku po odeslání v PHP
Nyní udělejme, aby hodnota
zaškrtávacího políčka zůstala uložena po odeslání. K
tomu ověříme, že $_GET['flag']
existuje (tj. došlo k odeslání formuláře)
a je rovno jedné (tj. zaškrtávací políčko je zaškrtnuto).
Pokud jsou tyto dvě podmínky splněny, vypíšeme
v zaškrtávacím políčku atribut 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 lze zjednodušit, pokud přesně víme,
že skryté input pole předává 0. V takovém
případě, pokud zaškrtávací políčko není zaškrtnuto, bude v $_GET['flag']
hodnota '0', a pokud formulář ještě
nebyl odeslán, bude tam null.
V obou těchto případech bychom neměli vypisovat
checked. A oba tyto případy můžeme
zachytit funkcí empty. Můžeme tedy
zkontrolovat, že $_GET['flag']
není prázdné, a pouze v tomto případě vypíšeme 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>
Vytvořte tři zaškrtávací políčka, která budou uchovávat svou hodnotu po odeslání.