Lagring av valgt verdi i avkrysningsboks etter innsending i PHP
La oss nå gjøre slik at verdien
i avkrysningsboksen blir lagret etter innsending. For
å gjøre dette sjekker vi om
$_GET['flag']
finnes (det vil si at skjemaet ble sendt inn)
og er lik én (det vil si at avkrysningsboksen er merket).
Hvis disse to betingelsene er oppfylt, viser vi
attributtet checked i avkrysningsboksen:
<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>
Sjekken kan forenkles hvis vi vet helt sikkert
at det skjulte input-feltet sender 0. I så
fall, hvis avkrysningsboksen ikke er merket, vil $_GET['flag']
inneholde '0', og hvis skjemaet
ikke er sendt inn ennå, vil den inneholde null.
I begge disse tilfellene skal vi ikke vise
checked. Og begge disse tilfellene kan vi
fange med funksjonen empty. På denne måten
kan vi sjekke at $_GET['flag']
ikke er tom, og bare i dette tilfellet vise 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>
Lag tre avkrysningsbokser som vil lagre sin verdi etter innsending.