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

PHP MySQL Delete-funktion i while-løkke

Du skal informere PHP-scriptet om, at du ønsker at slette posten. En løsning ville være at bruge et skjult input, som indstilles, når du kalder removeRow, f.eks.

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

Denne metode fjerner ikke længere tabelrækken fra DOM. Det vil dog deaktivere inputfelterne i rækken og tilføjer et skjult input med navnet beskrivelse_delete .

Når formularen er indsendt, vil din PHP nu have en måde at vide, hvilke poster der skal slettes.

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

Opdatering:Jeg har oprettet en phpfiddle som har nogle forbedringer, som du måske ønsker at lære om. Disse punkter omfatter:

  • Understøtter sletning, hvor JavaScript ikke er aktiveret
  • Brug af forberedte erklæringer (foretrukket til add_slashes )
  • Undgå output ved at bruge htmlspecialchars
  • Eksplicit definering af input-id'er for at undgå gæt baseret på en trinvis tæller



  1. MySQL-forbindelsesfejl Serverens tidszoneværdi Centraleuropæisk tid

  2. Datotid lig med eller større end i dag i MySQL

  3. Hvad betyder og gør MYSQLI_NUM?

  4. Ingen tabeller fundet i databasen