sql >> Database >  >> RDS >> Mysql

PHP MySQL Delete-functie in while-lus

U moet het PHP-script laten weten dat u het record wilt verwijderen. Een oplossing zou zijn om een ​​verborgen invoer te gebruiken die wordt ingesteld wanneer u removeRow aanroept, bijvoorbeeld

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

Met deze methode wordt de tabelrij niet langer uit de DOM verwijderd. Het zal echter de invoervelden in de rij uitschakelen en een verborgen invoer toevoegen met de naam beskrivelse_delete .

Wanneer het formulier is verzonden, heeft uw PHP nu een manier om te weten welke records moeten worden verwijderd.

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

Update:ik heb een phpfiddle gemaakt die enkele verbeteringen heeft waarover u misschien meer wilt weten. Deze punten omvatten:

  • Ondersteunt verwijdering waar JavaScript niet is ingeschakeld
  • voorbereide verklaringen gebruiken (voorkeur voor add_slashes )
  • Uitvoer ontsnappen door htmlspecialchars te gebruiken
  • Expliciet invoer-ID's definiëren om gissen te voorkomen gebaseerd op een incrementele teller



  1. CAST(DATETIME AS DATE) over WHERE-component

  2. Gebruik COL_LENGTH() om de lengte van een kolom in SQL Server te krijgen

  3. Django manage.py syncdb throwing Geen module met de naam MySQLdb

  4. geen pg_hba.conf invoer voor host