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.