⊗ppPmFmChcN 307 of 447 menu

Subtilités de l'utilisation des cases à cocher en PHP

Supposons que notre formulaire n'ait qu'une case à cocher :

<form action="" method="GET"> <input type="checkbox" name="flag"> <input type="submit"> </form>

Supposons que le code de traitement de notre formulaire ressemble à ceci :

<?php if (!empty($_GET)) { // si le formulaire a été soumis if (isset($_GET['flag'])) { // si la case est cochée echo 'coché'; } else { echo 'non coché'; } } ?>

Nous allons rencontrer un problème - si la case n'est pas cochée, alors, comme il n'y a pas d'autres éléments dans le formulaire à part la case à cocher, $_GET contiendra un tableau vide. Cela signifie que dans le code de traitement du formulaire, nous n'entrerons pas dans la première condition if, qui vérifie la soumission du formulaire.

Pour résoudre ce problème, une astuce spéciale est utilisée : créer un champ caché avec le même nom que notre case à cocher. Dans ce cas, la valeur du champ caché est mise à zéro, et celle de la case à cocher - à un :

<form action="" method="GET"> <input type="hidden" name="flag" value="0"> <input type="checkbox" name="flag" value="1"> <input type="submit"> </form>

Dans ce cas, voici ce qui se passera. Si la case à cocher n'est pas cochée, seule la valeur du champ caché sera envoyée au serveur. Si la case à cocher est cochée, les deux valeurs avec le même nom seront envoyées au serveur. Mais, comme la valeur de la case à cocher sera la seconde, elle écrasera simplement la première.

Ainsi, notre case à cocher enverra désormais au serveur soit zéro, soit un :

<?php var_dump($_GET['flag']); // '0' ou '1' ?>

Utilisons cela dans notre vérification :

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'coché'; } else { echo 'non coché'; } } ?>

À l'aide d'une case à cocher, demandez à l'utilisateur s'il a 18 ans ou plus. S'il les a, autorisez son accès au site, et sinon - ne l'autorisez pas.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser