Valitud väärtuse salvestamine märkeruudus pärast saatmist PHP-s
Teeme nüüd nii, et märkeruudu väärtus
salvestub pärast saatmist. Selleks
kontrollime, et $_GET['flag']
eksisteerib (ehk vorm on saadetud)
ja võrdub ühega (ehk märkeruut on märgitud).
Kui need kaks tingimust on täidetud, siis kuvame
märkeruudus atribuudi 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>
Kontrolli saab lihtsustada, kui me teame kindlalt,
et peidetud input saadab 0. Sellisel
juhul, kui märkeruut pole märgitud, siis $_GET['flag']
sisaldab '0', aga kui vormi
saatmist pole veel toimunud, siis sisaldab null.
Mõlemal neist juhtudest me ei pea kuvama
checked. Ja mõlemad need juhtumid saame
tabada funktsiooniga empty. Seega
saame kontrollida, et $_GET['flag']
ei ole tühi, ja ainult sel juhul kuvada 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>
Loo kolm märkeruutu, mis salvestavad oma väärtuse pärast saatmist.