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:

html<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:

html<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>
Задание 1

Urobte tri checkboxy, ktoré budú uchovávať svoju hodnotu po odoslaní.