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:

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

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

Vytvořte tři zaškrtávací políčka, která budou uchovávat svou hodnotu po odeslání.