0

我有一个正在开发的小型个人网络应用程序。我有一个链接,当单击该链接时,应该对应该从数据库中删除该信息的 php 进行 ajax 调用。由于某些未知原因,它实际上不会从数据库中删除该行。我已经尝试了我所知道的一切,但仍然没有。我敢肯定这是非常简单的事情......这是涉及的脚本。

数据库输出:

 $sql = "SELECT * FROM bookmark_app";
    foreach ($dbh->query($sql) as $row)
 {
 echo '<div class="box" id="',$row['id'],'"><img src="images/avatar.jpg" width="75" height="75" border="0" class="avatar"/>
     <div class="text"><a href="',$row['url'],'">',$row['title'],'</a><br/>
     </div>
            /*** Click to delete ***/
     <a href="?delete=',$row['id'],'" class="delete">x</a></div>
  <div class="clear"></div>';
        }

    $dbh = null;

阿贾克斯脚本:

$(document).ready(function() {
$("a.delete").click(function(){

 var element = $(this);

 var noteid = element.attr("id");

 var info = 'id=' + noteid;

  $.ajax({
    type: "GET",
    url: "includes/delete.php",
    data: info,
    success: function(){
    element.parent().eq(0).fadeOut("slow");
    }
  });
 return false;
 });
});

删除代码:

include('connect.php');

//delete.php?id=IdOfPost
if($_GET['id']){

$id = $_GET['id'];

//Delete the record of the post
$delete = mysql_query("DELETE FROM `db` WHERE `id` = '$id'");

//Redirect the user
header("Location:xxxx.php");

}
4

2 回答 2

3

啊,刚刚发现您的错误,在您生成的 href 中,您没有设置 id 属性。它应该是这样的:

<a href="..." id="'. $row['id'] . '" class="delete">x</a>

当然这只是一个直接的例子,你必须逃避这些事情,但这应该让你在 jQuery 中访问该项目。

于 2010-05-28T13:07:46.150 回答
0

您可能希望修改您的删除脚本,使其不仅仅是在数据库查询之后重定向。由于它是通过 AJAX 调用的,因此至少让它向 javascript 返回一个成功/错误代码:

// can't return $delete unconditionally, since *_query() returns an object
if ($delete) { 
   return(json_encode(array('code' => 1, 'msg' => 'Delete succeeded')));
} else {
   return(json_encode(array('code' => 0, 'msg' => 'Delete failed: ' . mysql_error()));
}

假设数据库调用成功是不好的做法。

于 2010-05-28T18:38:52.817 回答