无法使用ajax删除项目

时间:2017-05-26 14:03:16

标签: php ajax

我试图做简单的ajax删除。问题是当我点击垃圾按钮时没有任何反应。我是ajax和jquery的新手,并不知道如何调试它。

在标签网络下的控制台中,我看到按钮点击时调用了文件delete.php,而id: 1是正确的。

这是我的html部分

<div class="comment-head">
    <i class="fa fa-trash del" data-id="'.$row['id'].'"></i>
</div>

$( document ).ready(function() {

    $(".del").on("click", function() {
    $.ajax({
      url: "delete.php",
      method: "GET",
      data: { "id": $(this).data("id") },
      dataType: "html"
    }).done(function( msg ) {
      $( "#log" ).html( msg );
    }).fail(function( jqXHR, textStatus ) {
      alert( "Request failed: " + textStatus );
    }); 
  });
});

delete.php

$pdo = Database::connect();

if ( isset($_GET['id']) && isset($_POST['id']))  
{                   
    $stmt = $pdo->prepare("DELETE FROM gustbook where id = :id"); 
    $stmt->bindParam(':id', $id, PDO::PARAM_INT);
    $stmt->execute();

    Database::disconnect();

} 

我意识到这是一个新手问题,但请耐心等待。

1 个答案:

答案 0 :(得分:0)

试试这个:

delete.php:

$pdo = Database::connect();

if ( isset($_GET['id'])))  
{                   
    $stmt = $pdo->prepare("DELETE FROM gustbook where id = :id"); 
    $stmt->bindParam(':id', (int)$id, PDO::PARAM_INT);
    $stmt->execute();

    Database::disconnect();

} 

您正在使用GET方法发出AJAX请求,而在服务器端,您正在检查GET和POST方法。所以if中的代码无法永远执行。

更新

您必须将$ id转换为整数