0

这是我的代码

<script>
$(document).ready(function() {



    // delete the entry once we have confirmed that it should be deleted

    $('.delete').click(function() {

        var parent = $(this).closest('tr');


        $.ajax({

            type: 'POST',

            url: 'delete.php', 

            data: 'ajax=1&delete=' + $(this).attr('id'),



            success: function() {

                parent.fadeOut(300,function() {

                    parent.remove();

                });

            }

        });        

    });


    $('.delete').confirm({



    });    

});

</script>

我的问题是为什么 delete.php 没有执行?它在同一个文件夹中,我需要在这个文件中输入绝对 url 吗?但最好的是表中的行正在删除,但 php 文件没有执行。第二个问题是为什么这段代码没有这一行就不能工作:

  $('.delete').confirm({



        });   

在 php 文件中,我知道它是否已执行:

<script>
alert('aaaa');
</script>

甚至我已经改变它echo 'something';但仍然无法正常工作

4

3 回答 3

0

我会添加一个错误处理程序来查看 ajax 调用发生了什么,如下所示:

error: function(jqXHR, textStatus, errorThrown) {
    console.log(errorThrown);
}

请记住,ajax 调用会将当前目录附加到您设置的相对 uri 中。我假设您正在将请求发送到工作中的 Web 服务器,即使用 HTTP 协议。

据我所知,没有 confirm() jQuery 函数。你通常这样做:

if (confirm('Are you sure you want to delete this item?')) do_delete();

当用户选择 OK 时,confirm() 方法返回 true,否则返回 false。

干杯。

于 2012-09-09T11:42:55.367 回答
0

如果该行被删除,则肯定会执行 php 文件,并且您必须按照@Saifuddin 的描述检查 url 数据。

使用 firebug 控制台查看您的结果。而且您没有将参数传递给成功函数

所以改变这个

data: { ajax: 1, delete: $(this).attr('id')},

还有这个

success: function(msg) {
   alert(msg)
   parent.fadeOut(300,function() {
      parent.remove();
   });
}
于 2012-09-09T11:47:39.510 回答
0

我假设在您的情况下执行 php 文件,而更好的方法是使用绝对路径定义 url,例如http://www.example.com/delete.php。但是,您传递数据的方式并不符合标准。

所以替换这条线。

data: 'ajax=1&delete=' + $(this).attr('id'),

data: { ajax: 1, delete: $(this).attr('id')},

并在您的 php 文件中调试 print $_POST 变量。

希望能帮助到你。

于 2012-09-09T11:05:28.340 回答