Musíte informovat PHP skript, že chcete záznam smazat. Jedním z řešení by bylo použití skrytého vstupu, který se nastaví, když zavoláte removeRow, např.
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();
}
Tato metoda již neodstraňuje řádek tabulky z DOM. Zakáže však vstupní pole obsažená v řádku a přidá skrytý vstup s názvem beskrivelse_delete
.
Když je formulář odeslán, vaše PHP bude mít nyní způsob, jak zjistit, které záznamy je třeba smazat.
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
Aktualizace:Vytvořil jsem phpfiddle který má některá vylepšení, o kterých se možná budete chtít dozvědět. Mezi tyto body patří:
- Podpora smazání tam, kde není povolen JavaScript
- Pomocí připravených výpisů
(preferováno
add_slashes
) - Escapování výstupu pomocí htmlspecialchars
- Explicitní definování vstupních ID, abyste se vyhnuli hádání na základě přírůstkového počítadla