2017-05-28 3 views
0

Wenn ich console.log die ID aus, nachdem ich den Datensatz löschen soll, wird die richtige ID in der Konsole angezeigt. So scheint es, dass es richtig verbunden ist, aber einen Datensatz aus meiner Datenbank nicht wirklich löscht. Ich kann das nicht herausfinden, aber es ist wahrscheinlich etwas Offensichtliches.Datensatz nicht löschen mit php/ajax

JS

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.table-row').on('click', function (e) { 
     e.preventDefault(); 
     var $otId = $(this).data('ot-id'); 
     swal({ 
      title: 'Are you sure?', 
      text: "You won't be able to undo this!", 
      type: 'warning', 
      showCancelButton: true, 
      confirmButtonColor: '#FB404B', 
      cancelButtonColor: '#d33', 
      confirmButtonText: 'Yes, delete it!', 
      closeOnCancel: false 
     }, function (isConfirm) { 
      if (isConfirm) { 
       $.ajax({ 
        type: 'post', 
        url: 'functions/delete-ot-request.php', 
        data: {otId: $otId}, 
        success: function (result) { 
         // window.location.href = 'delete-ot.php'; 
         console.log($otId); 
        }, 
       }); 
      } else { 
       swal("Cancelled", "Maybe next time then.", "error"); 
      } 
     }); 
    }); 
}); 
</script> 

PHP

if(isset($_POST['otId'])) { 
    $stmt = $link->prepare("DELETE FROM `ot_request` WHERE `id` = ? LIMIT 1"); 
    $stmt->bind_param("i", $_POST['otId']); 
    $stmt->execute(); 
    $stmt->close(); 
} 

Dies ist die Zeile HTML-Tabelle, die die ID gilt:

<tr class="table-row" data-ot-id="{$id}"></tr> 
+0

können Sie in vollem Umfang zeigen HTML Quelltext ! Weil Sie tr gepostet haben, ist es unmöglich, ohne td zu klicken. –

+0

Verbesserte Formatierung – purvik7373

Antwort

0

Ihre console.log($otId); Berichte Der ID-Wert, den Sie zuvor gesendet haben, keine Daten, die von der Serverseite zurückkommen.

Daher bestätigt dieser Ausgang nur, dass der Ajax-Prozess erfolgreich war, nicht der Server-Job, der wahrscheinlich ist, was aus irgendeinem Grund falsch schaltet.

So sollten Sie Fehler auf der Serverseite sucht, beginnend mit etwas Ausführung Spur zurückschicken:

if(isset($_POST['otId'])) { 
    try { 
    $stmt = $link->prepare("DELETE FROM `ot_request` WHERE `id` = ? LIMIT 1"); 
    $stmt->bind_param("i", $_POST['otId']); 
    $stmt->execute(); 
    $stmt->close(); 
    echo 'otId "' . $_POST['otId'] . '" processed'; 
    } catch(PDOException $e) { 
    echo $e->getMessage; 
    } 
} else { 
    echo 'No otId found'; 
} 

Und Modifizieren Sie Javascript, damit Sie Ausgang dieser Spur:

success: function (result) { 
    console.log(result); 
} 
Verwandte Themen