Mysql
 sql >> Database >  >> RDS >> Mysql

PHP MySQL Elimina la funzione nel ciclo while

È necessario informare lo script PHP che si desidera eliminare il record. Una soluzione sarebbe utilizzare un input nascosto che viene impostato quando chiami removeRow, ad esempio

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();
}

Questo metodo non rimuove più la riga della tabella dal DOM. Tuttavia, disabiliterà i campi di input contenuti nella riga e aggiungerà un input nascosto con il nome beskrivelse_delete .

Quando il modulo viene inviato, il tuo PHP avrà ora un modo per sapere quali record devono essere eliminati.

foreach ($_POST['delete_id'] as $deleteId) {
    $deleteId = (int)$deleteId;
    $db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}

Aggiornamento:ho creato un phpfiddle che ha alcuni miglioramenti che potresti voler conoscere. Questi punti includono:

  • Supporto dell'eliminazione quando JavaScript non è abilitato
  • Utilizzo di dichiarazioni preparate (preferito a add_slashes )
  • Escape dell'output utilizzando htmlspecialchars
  • Definizione esplicita degli ID di input per evitare indovinare basato su un contatore incrementale