Wird ein Formular mit Checkboxen abgeschickt, werden in PHP nur die Einträge im Array <php>$_GET</php> bzw. <php>$_POST</php> erzeugt, deren Felder beim Ausfüllen ausgewählt werden. Wenn also nur das 2. und 3. Kästchen angeklickt wird, dann werden nur die Variablen <php>$_GET["artikel2"]</php> mit dem Wert Artikel 2 und <php>$_GET[„artikel3“]</php> mit dem Wert Artikel 3 erzeugt.
Wenn eine oder mehrere Checkboxen standardmäßig den Zustand „Ausgewählt“ besitzen sollen, kann man innerhalb des input-Tags das Attribut checked verwenden.
<html> <head> <title>Checkbox</title> </head> <body> <?php echo "<b>Sie haben folgende Artikel bestellt:</b><br>"; echo $_GET["artikel1"] . "<br>"; echo $_GET["artikel2"] . "<br>"; echo $_GET["artikel3"] . "<br>"; echo $_GET["artikel4"] . "<br>"; ?> <form action="check.php" method="get"> <input type="Hidden" name="preis" value="5.99"> <input type="Checkbox" name="artikel1" value="Artikel 1">Artikel 1<br> <input type="Checkbox" name="artikel2" value="Artikel 2">Artikel 2<br> <input type="Checkbox" name="artikel3" value="Artikel 3">Artikel 3<br> <input type="Checkbox" name="artikel4" value="Artikel 4">Artikel 4<br> <input type="Submit" name="submit" value="Kaufen"> </form> </body> </html>
so sieht es aus:
<html><input type="Checkbox" name="artikel1" value="Artikel 1">Artikel 1<br> <input type="Checkbox" name="artikel2" value="Artikel 2">Artikel 2<br> <input type="Checkbox" name="artikel3" value="Artikel 3">Artikel 3<br> <input type="Checkbox" name="artikel4" value="Artikel 4">Artikel 4<br> <input type="Submit" name="submit" value="Kaufen"> </html> |
Checkbox lassen sich auch mittels einer Array - Anweisung erstellen. Wobei es bei der Ausgabe wichtig ist, nicht nur ein Element auszugeben, sondern es könnten möglicherweise alle Elemente, oder nur zwei sein.
Dazu dient die implode() - Anweisung
implode ( string $glue , arrayname ) Verbindet die Elemente eines Array mittels glue zu einer Zeichenkette
Nachdem er nur etwas im Array findet, wenn etwas angeklickt ist, sollte die Ausgabe nur erfolgen, wenn das Array nicht leer ist (eingebaute IF - Anweisung).
<html> <head> <title>Checkbox</title> </head> <body> <form action="check.php" method="POST"> <input type="hidden" name="preis" value="5.99"> <input type="checkbox" name="artikel[]" value="Artikel 1">Artikel 1<br> <input type="checkbox" name="artikel[]" value="Artikel 2">Artikel 2<br> <input type="checkbox" name="artikel[]" value="Artikel 3">Artikel 3<br> <input type="checkbox" name="artikel[]" value="Artikel 4">Artikel 4<br> <input type="submit" name="submit" value="Kaufen"> </form> <?php if(isset($_POST["artikel"])){ $var = $_POST["artikel"]; $ausgabe = implode(", ", $var); echo "<b>Sie haben folgende Artikel bestellt: $ausgabe</b><br>"; } ?> </body> </html>