Sie müssen dem PHP-Skript mitteilen, dass Sie den Datensatz löschen möchten. Eine Lösung wäre, einen versteckten Eingang zu verwenden, der gesetzt wird, wenn Sie removeRow aufrufen, z. B.
function removeRow(el) {
// get the table row
var row = $(el).parents('tr:first');
// disable the input fields for the row
$('input', row).attr('disabled', 'disabled');
// rename update_id to delete_id and re-enable the field
$('input[name="update_id[]"]', row).attr('name', 'delete_id[]').removeAttr('disabled');
// hide the row
row.hide();
}
Diese Methode entfernt die Tabellenzeile nicht mehr aus dem DOM. Es deaktiviert jedoch die in der Zeile enthaltenen Eingabefelder und fügt eine versteckte Eingabe mit dem Namen beskrivelse_delete
hinzu .
Wenn das Formular gesendet wird, kann Ihr PHP nun erkennen, welche Datensätze gelöscht werden müssen.
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
Update:Ich habe einen phpfiddle erstellt die einige Verbesserungen enthält, über die Sie vielleicht mehr erfahren möchten. Zu diesen Punkten gehören:
- Unterstützung des Löschens, wenn JavaScript nicht aktiviert ist
- Verwenden von vorbereiteten Anweisungen
(bevorzugt
add_slashes
) - Escape-Ausgabe durch Verwendung von htmlspecialchars
- Eingabe-IDs explizit definieren, um Raten zu vermeiden basierend auf einem inkrementellen Zähler