Conservare il valore selezionato nella casella di controllo dopo l'invio in PHP
Ora facciamo in modo che il valore della
casella di controllo venga conservato dopo l'invio. Per
fare ciò, verifichiamo che $_GET['flag']
esista (cioè che il modulo sia stato inviato)
e sia uguale a uno (cioè che la casella sia selezionata).
Se queste due condizioni sono soddisfatte, allora inseriamo
nella casella di controllo l'attributo 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>
Il controllo può essere semplificato se sappiamo con certezza
che l'input nascosto invia 0. In questo
caso, se la casella di controllo non è selezionata, in $_GET['flag']
ci sarà '0', mentre se il modulo non è stato
ancora inviato, ci sarà null.
In entrambi questi casi non dobbiamo inserire
checked. E possiamo catturare entrambi questi casi
con la funzione empty. Pertanto
possiamo verificare che $_GET['flag']
non sia vuoto, e solo in questo caso inserire 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>
Crea tre caselle di controllo che conservino il proprio valore dopo l'invio.