आपको PHP स्क्रिप्ट को सूचित करना होगा कि आप रिकॉर्ड को हटाना चाहते हैं। एक समाधान एक छिपे हुए इनपुट का उपयोग करना होगा जो तब सेट होता है जब आप removeRow को कॉल करते हैं, उदा।
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();
}
यह विधि अब तालिका पंक्ति को DOM से नहीं हटाती है। हालांकि, यह पंक्ति में निहित इनपुट फ़ील्ड को अक्षम कर देगा और beskrivelse_delete
नाम के साथ एक छिपा हुआ इनपुट जोड़ देगा। ।
जब फ़ॉर्म सबमिट किया जाता है, तो आपके PHP के पास अब यह जानने का एक तरीका होगा कि कौन से रिकॉर्ड को हटाना है।
foreach ($_POST['delete_id'] as $deleteId) {
$deleteId = (int)$deleteId;
$db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}
अपडेट करें:मैंने एक phpfiddle बनाया है जिसमें कुछ सुधार हैं जिनके बारे में आप जानना चाहेंगे। इन बिंदुओं में शामिल हैं:
- जावास्क्रिप्ट सक्षम नहीं होने पर हटाने में सहायता
- तैयार विवरण
का उपयोग करना (
add_slashes
के लिए पसंद किया जाता है ) - htmlspecialchars का उपयोग करके आउटपुट से बचना
- अनुमान लगाने से बचने के लिए स्पष्ट रूप से इनपुट आईडी को परिभाषित करना वृद्धिशील काउंटर पर आधारित