Du måste meddela PHP-skriptet att du vill ta bort posten. En lösning skulle vara att använda en dold ingång som ställs in när du anropar removeRow, t.ex.
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();
}
Denna metod tar inte längre bort tabellraden från DOM. Det kommer dock att inaktivera inmatningsfälten i raden och lägga till en dold inmatning med namnet beskrivelse_delete
.
När formuläret har skickats in har din PHP nu ett sätt att veta vilka poster som måste raderas.
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
Uppdatering:Jag har skapat en phpfiddle som har några förbättringar som du kanske vill lära dig mer om. Dessa punkter inkluderar:
- Stöder radering där JavaScript inte är aktiverat
- Använda förberedda uttalanden
(föredraget till
add_slashes
) - Escape output genom att använda htmlspecialchars
- Explicit definiera indata-ID för att undvika gissningar baserat på en inkrementell räknare