Du skal informere PHP-scriptet om, at du ønsker at slette posten. En løsning ville være at bruge et skjult input, som indstilles, når du kalder removeRow, f.eks.
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();
}
Denne metode fjerner ikke længere tabelrækken fra DOM. Det vil dog deaktivere inputfelterne i rækken og tilføjer et skjult input med navnet beskrivelse_delete
.
Når formularen er indsendt, vil din PHP nu have en måde at vide, hvilke poster der skal slettes.
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
Opdatering:Jeg har oprettet en phpfiddle som har nogle forbedringer, som du måske ønsker at lære om. Disse punkter omfatter:
- Understøtter sletning, hvor JavaScript ikke er aktiveret
- Brug af forberedte erklæringer
(foretrukket til
add_slashes
) - Undgå output ved at bruge htmlspecialchars
- Eksplicit definering af input-id'er for at undgå gæt baseret på en trinvis tæller