Bevarelse af valgt værdi i checkbox efter indsendelse i PHP

Lad os nu gøre det sådan, at værdien af checkboxen bevares efter indsendelse. For at gøre dette kontrollerer vi, at $_GET['flag'] eksisterer (det vil sige, der var en formularindsendelse) og er lig med en (det vil sige, afkrydsningsfeltet er markeret).

Hvis disse to betingelser er opfyldt, udskriver vi attributten checked i checkboxen:

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>

Kontrollen kan forenkles, hvis vi med sikkerhed ved, at det skjulte input felt sender 0. I så fald, hvis checkboxen ikke er markeret, vil $_GET['flag'] indeholde '0', og hvis formularindsendelsen endnu ikke er sket, vil den indeholde null.

I begge disse tilfælde skal vi ikke udskrive checked. Og begge disse tilfælde kan vi fange med funktionen empty. På denne måde kan vi kontrollere, at $_GET['flag'] ikke er tom, og kun i dette tilfælde udskrive 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

Lav tre checkbokse, som vil bevare deres værdi efter indsendelse.