Valitun arvon säilyttäminen valintaruudussa lähetyksen jälkeen PHP:ssä

Tehdään nyt niin, että valintaruudun arvo säilyy lähetyksen jälkeen. Tätä varten tarkistamme, että $_GET['flag'] on olemassa (eli lomake on lähetetty) ja on yhtä kuin yksi (eli valintaruutu on valittu).

Jos nämä kaksi ehtoa täyttyvät, tulostamme valintaruutuun attribuutin 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>

Tarkistusta voidaan yksinkertaistaa, jos tiedämme varmasti, että piilotettu input-kenttä lähettää 0. Tässä tapauksessa, jos valintaruutua ei ole valittu, niin $_GET['flag'] sisältää arvon '0', ja jos lomaketta ei ole vielä lähetetty, niin se sisältää arvon null.

Molemmissa näissä tapauksissa meidän ei pitäisi tulostaa checked. Ja molemmat nämä tapaukset voimme tunnistaa funktiolla empty. Näin ollen voimme tarkistaa, että $_GET['flag'] ei ole tyhjä, ja vain tässä tapauksessa tulostaa 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

Tee kolme valintaruutua, jotka säilyttävät arvonsa lähetyksen jälkeen.