⊗ppPmFmChcN 307 of 447 menu

Nuancen der Verwendung von Checkboxen in PHP

Nehmen wir an, in unserem Formular gibt es nur eine Checkbox:

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

Nehmen wir an, der Code zur Verarbeitung unseres Formulars sieht so aus:

<?php if (!empty($_GET)) { // wenn das Formular abgeschickt wurde if (isset($_GET['flag'])) { // wenn die Checkbox angekreuzt ist echo 'angekreuzt'; } else { echo 'nicht angekreuzt'; } } ?>

Wir stoßen auf ein Problem - wenn die Checkbox nicht angekreuzt ist, liegt in $_GET ein leeres Array, da es außer der Checkbox keine anderen Elemente im Formular gibt. Das bedeutet, dass wir im Verarbeitungscode nicht in die erste if-Bedingung gelangen, die das Abschicken des Formulars überprüft.

Um dieses Problem zu lösen, wird ein spezieller Trick verwendet: Man erstellt ein verstecktes Input-Feld mit demselben Namen wie unsere Checkbox. Dabei setzt man den Wert des versteckten Input-Felds auf Null und den der Checkbox auf Eins:

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

In diesem Fall ergibt sich Folgendes. Wenn die Checkbox nicht angekreuzt ist, wird nur der Wert des versteckten Input-Felds an den Server gesendet. Wenn die Checkbox jedoch angekreuzt ist, werden beide Werte mit demselben Namen an den Server gesendet. Da aber der Wert der Checkbox der zweite sein wird, überschreibt er einfach den ersten.

Zusammenfassend wird unsere Checkbox nun entweder Null oder Eins an den Server senden:

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

Nutzen wir dies in unserer Überprüfung:

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

Fragen Sie den Benutzer mit einer Checkbox, ob er bereits 18 Jahre alt ist oder nicht. Wenn ja, erlauben Sie ihm den Zugriff auf die Website, andernfalls nicht.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen