レコードを削除することをPHPスクリプトに通知する必要があります。 1つの解決策は、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 を作成しました これには、あなたが学びたいと思うかもしれないいくつかの改善があります。これらのポイントは次のとおりです。
- JavaScriptが有効になっていない場合の削除のサポート
- プリペアドステートメント
を使用する (
add_slashes
よりも優先されます ) - htmlspecialchars を使用して出力をエスケープする
- 推測を避けるために入力IDを明示的に定義する インクリメンタルカウンターに基づく