U moet het PHP-script laten weten dat u het record wilt verwijderen. Een oplossing zou zijn om een verborgen invoer te gebruiken die wordt ingesteld wanneer u removeRow aanroept, bijvoorbeeld
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();
}
Met deze methode wordt de tabelrij niet langer uit de DOM verwijderd. Het zal echter de invoervelden in de rij uitschakelen en een verborgen invoer toevoegen met de naam beskrivelse_delete
.
Wanneer het formulier is verzonden, heeft uw PHP nu een manier om te weten welke records moeten worden verwijderd.
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
Update:ik heb een phpfiddle gemaakt die enkele verbeteringen heeft waarover u misschien meer wilt weten. Deze punten omvatten:
- Ondersteunt verwijdering waar JavaScript niet is ingeschakeld
- voorbereide verklaringen
gebruiken (voorkeur voor
add_slashes
) - Uitvoer ontsnappen door htmlspecialchars te gebruiken
- Expliciet invoer-ID's definiëren om gissen te voorkomen gebaseerd op een incrementele teller