Conservación del valor seleccionado en un checkbox después del envío en PHP
Ahora hagamos que el valor del checkbox
se conserve después del envío. Para
esto, verifiquemos que $_GET['flag']
exista (es decir, que el formulario fue enviado)
y sea igual a uno (es decir, que la casilla esté marcada).
Si estas dos condiciones se cumplen, entonces mostraremos
el atributo checked en el checkbox:
<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>
La verificación se puede simplificar si sabemos con certeza
que el input oculto envía 0. En tal
caso, si el checkbox no está marcado, entonces en $_GET['flag']
estará '0', y si el formulario
aún no se ha enviado, entonces estará null.
En ambos casos no debemos mostrar
checked. Y ambos casos los podemos
detectar con la función empty. Así
podemos verificar que $_GET['flag']
no esté vacío, y solo en ese caso mostrar 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 tres checkboxes que conserven su valor después del envío.