PHP Formular Checkbox mit Komma trennen

dremba

Ensign
Registriert
März 2021
Beiträge
143
Hallo zusammen,
ich möchte das die Checkboxen in meinem Formular mit Kommas getrennt werden. Also das erkannt wird wenn ich eine Checkbox auswähle kommt kein Komma, bei zwei werden sie durch ein Komma getrennt. Gibt es dafür eine einfache Lösung?

Hier mein Programmcode (ist einmal von der Formularseite und eine zweite Datei der auswertung):

Welche TV-Sendungen sehen Sie gern?
<input type="checkbox" name="tvsendung1" value="Dokumentationen, " />
<label for="tvsendung">Dokumentationen</label>
<input type="checkbox" name="tvsendung2" value="Nachrichten, " />
<label for="tvsendung">Nachrichten</label>
<input type="checkbox" name="tvsendung3" value="Spielfilme, " />
<label for="tvsendung">Spielfilme</label><br>
<input type="checkbox" name="tvsendung4" value="Sport " />
<label for="tvsendung">Sport</label>



echo "Beliebte TV-Sendungen: ";

if(isset($_POST["tvsendung1"])){
echo $_POST["tvsendung1"] ;
}
if(isset($_POST["tvsendung2"])){
echo $_POST["tvsendung2"] ;
}
if(isset($_POST["tvsendung3"])){
echo $_POST["tvsendung3"] ;
}
if(isset($_POST["tvsendung4"])){
echo $_POST["tvsendung4"];
}
 
Hinter jedem Feld immer ein Komma einfügen, danach das letzte Komma entfernen.

Oder anders herum: Vor jedem Feld ein Komma einfügen, danach das erste Komma entfernen.

Funktioniert aber nur, wenn du die Ausgabe erst einmal in eine Variable schreibst, und abschließend "echo'st".
 
  • Gefällt mir
Reaktionen: dremba
Checkboxen unterstützen Arrays, dazu müssen die alle den selben Namen haben und auf [] enden.
Alle 4 Checkboxen heißen dann einfach tvsendung[] und in PHP hast du dann ein numerisches Array in $_POST['tvsendung'] mit den Values der markierten Boxen.
Hier mehr dazu

Das ist die "richtigere" Version, wenn du dann immernoch eine kommagetrennte Liste willst kannst du das mit dem Array und Implode recht einfach machen.
Wenn du neue Sendungs-Typen brauchst musst du das ganze nur im HTML hinzufügen und nicht einen weiteren If-Block mit dem gleichem Inhalt zu kopieren.
 
  • Gefällt mir
Reaktionen: Fombu, [ChAoZ], netzgestaltung und 3 andere
  • Gefällt mir
Reaktionen: dremba
Oder die Felder in einem Array speichern, z.B. <input type="checkbox" name="tvsendungen[]" value="Nachrichten" /> und später einfach mit implode() zu einem String, getrennt mit Komma, zusammenfügen.

Edit: ...zu langsam ^^
 
  • Gefällt mir
Reaktionen: dremba und Lawnmower
Danke euch für die schnellen Antworten :)
 
Zurück
Oben