Conservation de la valeur sélectionnée dans une case à cocher après envoi en PHP
Faisons en sorte maintenant que la valeur de la
case à cocher soit conservée après l'envoi. Pour
cela, vérifions que $_GET['flag']
existe (c'est-à-dire que le formulaire a été envoyé)
et est égal à un (c'est-à-dire que la case est cochée).
Si ces deux conditions sont remplies, alors nous afficherons
l'attribut checked dans la case à cocher :
<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 vérification peut être simplifiée si nous savons avec certitude
que le champ caché transmet 0. Dans un tel
cas, si la case à cocher n'est pas cochée, alors $_GET['flag']
contiendra '0', et si le formulaire
n'a pas encore été envoyé, il contiendra null.
Dans ces deux cas, nous ne devons pas afficher
checked. Et nous pouvons capturer
ces deux cas avec la fonction empty. Ainsi,
nous pouvons vérifier que $_GET['flag']
n'est pas vide, et seulement dans ce cas afficher 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>
Créez trois cases à cocher qui conserveront leur valeur après envoi.