Het geselecteerde waarde in een checkbox behouden na verzending in PHP
Laten we het nu zo maken dat de waarde
van de checkbox behouden blijft na verzending. Om
dit te doen controleren we of $_GET['flag']
bestaat (dat wil zeggen, het formulier is verzonden)
en gelijk is aan één (dat wil zeggen, het vinkje is aangevinkt).
Als aan deze twee voorwaarden is voldaan, geven we
in de checkbox het attribuut checked uit:
<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>
De controle kan worden vereenvoudigd als we precies weten
dat het verborgen input veld 0 doorgeeft. In zo'n
geval, als de checkbox niet is aangevinkt, dan ligt er in $_GET['flag']
de waarde '0', en als het formulier
nog niet was verzonden, dan ligt er null.
In beide gevallen moeten we
checked niet uitvoeren. En beide gevallen kunnen we
opvangen met de functie empty. Op deze manier
kunnen we controleren dat $_GET['flag']
niet leeg is, en alleen in dat geval checked uitvoeren:
<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>
Maak drie checkboxes die hun waarde behouden na verzending.