sql >> Base de Datos >  >> RDS >> Mysql

PHP MySQL Función de eliminación en bucle while

Debe informar al script PHP que desea eliminar el registro. Una solución sería usar una entrada oculta que se establece cuando llama a removeRow, por ejemplo,

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

Este método ya no elimina la fila de la tabla del DOM. Sin embargo, deshabilitará los campos de entrada contenidos en la fila y agregará una entrada oculta con el nombre beskrivelse_delete .

Cuando se envíe el formulario, su PHP ahora tendrá una forma de saber qué registros deben eliminarse.

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

Actualización:he creado un phpfiddle que tiene algunas mejoras que tal vez desee conocer. Estos puntos incluyen:

  • Admite la eliminación cuando JavaScript no está habilitado
  • Uso de declaraciones preparadas (preferido a add_slashes )
  • Escape de la salida usando htmlspecialchars
  • Definir explícitamente ID de entrada para evitar adivinar basado en un contador incremental