不要通过ajax实时通话删除

时间:2014-04-29 12:02:58

标签: php jquery ajax

当我按下删除按钮时,它不会删除内容。 我认为ajax删除调用

有问题

Ajax的file.php

    $('.delete_update').live("click",function() {

        var ID = $(this).attr("id");
        var dataString = 'msg_id='+ ID;

        if(confirm("Sure you want to delete this update? There is NO undo!")) {

        $.ajax({
            type: "POST",
            url: "delete_data.php",
            data: dataString,
            cache: false,
            success: function(html){
            $("div#bar"+ID).slideUp('slow', function() {$(this).remove();});
        }
    });

    }

return false;
});

<div class="accordionButton" id="bar<?php echo $msg_id; ?>"><?php echo $msg_id; ?>:<?php echo $name; ?>
<a href="#" id="<?php echo $msg_id; ?>" class="delete_update">X</a>
</div>
<div class="accordionContent" style="display: block;"><?php echo $msg; ?></div>

delete_data.php

<?php
include("db.php");
if($_POST['msg_id'])
{
$id=$_POST['msg_id'];
$id = mysql_escape_String($id);
$sql = "delete from messages where msg_id='$id'";
mysql_query( $sql);
}
?>

2 个答案:

答案 0 :(得分:0)

如果您使用的是最新的jQuery,请使用on代替live,因为它不受支持

*针对动态内容进行了更新

$(document).on("click", '.delete_update', function() {

答案 1 :(得分:0)

我认为问题出在这个功能范围内。 您为$ .ajax数据对象提供了一个字符串。 功能&#39;通常&#39;只处理javascript对象。

在不检查参数的情况下处理参数时也要小心。 看看为mysql编写的语句

    $.ajax({
        type: "POST",
        url: "delete_data.php",
        data: dataString, <--- May be wrong because you are using POST
        cache: false,
        success: function(html){
        $("div#bar"+ID).slideUp('slow', function() {$(this).remove();});
    }

试试这个。尝试在服务端脚本

回显msg_id
    $.ajax({
        type: "POST",
        url: "delete_data.php",
        data: {msg_id:ID},
        cache: false,
        success: function(html){
        $("div#bar"+ID).slideUp('slow', function() {$(this).remove();});
    }