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:
<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:
<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>
Tee kolme valintaruutua, jotka säilyttävät arvonsa lähetyksen jälkeen.