Dennis: checkbox: name und value in Selfhtml

Beitrag lesen

Hi Martin,

Ich habe verzweifelt in SelfHTML gesucht, wie ich Checkboxen per POST an PHP übergeben kann:
<input type='checkbox' checked='checked' name='delete' value='test'>
<input type='checkbox' checked='checked' name='delete' value='test2'>

Du kannst nicht für zwei verschiedene Formular-Elemente denselben Namen vergeben - dann überschreiben die sich beim Versenden der Daten! Einzige Ausnahme: Radioboxen, möglicherweise verwechselst du die Checkboxen gerade mit denen. Bei Radioboxen geht das deshalb, weil von denen ja immer nur _eine_ angeklickt sein kann/darf.

Das funktioniert nur, wenn ich es als Array übergebe:
<input type='checkbox' checked='checked' name='delete[]' value='test'>
<input type='checkbox' checked='checked' name='delete[]' value='test'>

Richtig, dann wird die erste als delete[0] und die zweite als delete[1] verschickt bzw. vom PHP-Script aufgenommen.

Ein kleiner Tip für die Praxis: Wenn du z.B. eine Liste alles Datensätze ausgibts und vor jeden Datensatz eine Checkbox setzt und man auswählen können soll, welche Datensätze alle gelöscht werden sollen - normalerweise hat jeder Datensatz eine ID, die kannst du als numerischen Index nehmen:

<input type="checkbox" name="delete[<?php echo $id; ?>]" value="test" />

Im PHP-Script kannst du dann das Array delete durchgehen:

foreach($_POST['delete'] as $id => $value) {
  // lösche $id oder mache sonst etwas
}

MfG, Dennis.