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:
<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:
<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>
Lav tre checkbokse, som vil bevare deres værdi efter indsendelse.