Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP MySQL Supprimer la fonction dans la boucle while

Vous devez informer le script PHP que vous souhaitez supprimer l'enregistrement. Une solution serait d'utiliser une entrée masquée qui est définie lorsque vous appelez removeRow, par exemple

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

Cette méthode ne supprime plus la ligne du tableau du DOM. Cependant, il désactivera les champs de saisie contenus dans la ligne et ajoutera une entrée masquée avec le nom beskrivelse_delete .

Lorsque le formulaire est soumis, votre PHP aura désormais un moyen de savoir quels enregistrements doivent être supprimés.

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

Mise à jour :j'ai créé un phpfiddle qui a quelques améliorations dont vous voudrez peut-être en savoir plus. Ces points incluent :

  • Prise en charge de la suppression lorsque JavaScript n'est pas activé
  • Utiliser instructions préparées (préféré à add_slashes )
  • Echapper la sortie en utilisant htmlspecialchars
  • Définir explicitement les identifiants d'entrée pour éviter de deviner basé sur un compteur incrémental