Checkbox

Checkbox ohne Array und implode()

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 mit Array und implode()

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>