Musisz poinformować skrypt PHP, że chcesz usunąć rekord. Jednym z rozwiązań byłoby użycie ukrytych danych wejściowych, które są ustawiane po wywołaniu removeRow, np.
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();
}
Ta metoda nie usuwa już wiersza tabeli z DOM. Jednak wyłączy pola wejściowe zawarte w wierszu i doda ukryte dane wejściowe o nazwie beskrivelse_delete
.
Kiedy formularz zostanie przesłany, Twój PHP będzie teraz wiedział, które rekordy należy usunąć.
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
Aktualizacja:stworzyłem phpfiddle który zawiera pewne ulepszenia, o których możesz chcieć się dowiedzieć. Te punkty obejmują:
- Obsługa usuwania, gdy JavaScript nie jest włączony
- Korzystanie z przygotowanych wyciągów
(preferowane do
add_slashes
) - Unikanie wyjścia przy użyciu htmlspecialchars
- Jasne definiowanie identyfikatorów wejściowych, aby uniknąć zgadywania na podstawie licznika przyrostowego