如何使用jQuery测试AJAX帖子

时间:2011-04-22 01:09:51

标签: jquery ajax

我有以下函数打开jQuery UI的对话框警告删除条目。一切正常,除了使用AJAX的POST。我得到了关于“成功”的回应,但我不相信我正在点击应该执行查询的.php页面。我在这里错过了什么吗?

var $dialog = $("#dialog").dialog({ autoOpen: false, resizable: false, modal: true });

    $(".delProj").click(function(){ 
        var delURL = $(this).attr("href").split("#");
        var projID = delURL[1];
        $dialog.dialog("open");
        $("#dialog").dialog({
            buttons: {
                "Yes, delete this test": function() {
                    $.ajax({
                        type: "POST",
                        url: "http://www.example.com/inc/db_actions.php",
                        data: "op=DeleteProject&delete="+projID,
                        success: function(){
                          //  alert( "Test Project deleted successfully." );
                          $("#"+projID).remove();
                        }
                    });
                    $(this).dialog("close");
                },
                "No, keep it.": function() {
                    $(this).dialog("close");
                }
            }
        });
    });

2 个答案:

答案 0 :(得分:6)

让你的php页面叫做echo something

<强> PHP

echo 'hello world';

<强>的Javascript

添加回调的返回值(此处为data), 并尝试用js显示它。

[..]

success: function(data){
    alert(data);
}

[...]

答案 1 :(得分:3)

我通常会通过JSON格式的数据发送某种形式的响应,以便我的AJAX查询知道他们是否已经完成了他们的目标。类似的东西:

<强>脚本:

$.ajax({
    type: "POST",
    url: "http://www.mydomain.com/inc/db_actions.php",
    data: "op=DeleteProject&delete="+projID,
    success: function(data){
        if(data.success == true)
        {
            $("#"+projID).remove();
        }
});

<强> PHP:

// do something
echo json_encode(array('success'=>true));

修改

捕获ajax错误通常也是一件好事:

$.ajax({
    type: "POST",
    url: "http://www.mydomain.com/inc/db_actions.php",
    data: "op=DeleteProject&delete="+projID,
    success: function(data){
        if(data.success == true)
        {
            $("#"+projID).remove();
        }
    },
    error: function(){
        alert('something bad happened');
    }
});