Att bevara markerat värde i kryssruta efter insändning i PHP
Låt oss nu se till att värdet i
kryssrutan bevaras efter insändning. För
att göra detta kontrollerar vi att $_GET['flag']
finns (det vill säga formuläret har skickats)
och är lika med ett (det vill säga kryssrutan är markerad).
Om dessa två villkor är uppfyllda, skriver vi ut
attributet checked i kryssrutan:
<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 förenklas om vi vet säkert
att det dolda input-fältet skickar 0. I sådant
fall, om kryssrutan inte är markerad, kommer $_GET['flag']
innehålla '0', och om formuläret
ännu inte har skickats, kommer den innehålla null.
I båda dessa fall ska vi inte skriva ut
checked. Och båda dessa fall kan vi
fånga med funktionen empty. På så sätt
kan vi kontrollera att $_GET['flag']
inte är tom, och endast i detta fall skriva ut 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>
Skapa tre kryssrutor som kommer att bevara sitt värde efter insändning.