2011-04-22 85 views
0

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

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"); 
       } 
      } 
     }); 
    }); 
+0

为什么你不相信它不张贴到网页?你总是可以从php脚本回显。您也可以使用萤火虫检查帖子并回复。 – Matt 2011-04-22 01:14:05

+0

看看你的ajax请求的URL选项,你确定在页面正在加载的同一个域上击中php页面吗?如果不是,跨域策略将会失败你的ajax调用。 – Chandu 2011-04-22 01:23:01

回答

6

请称为回声东西

你的PHP页面

PHP

echo 'hello world'; 

的Javascript

添加返回值的回调(这里data)的, 和尝试用js显示它。

[..]

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

[...]

+0

是的,不需要任何复杂的测试。这样做会很好,并且会尽量减少发生任何无关错误的机会。 – BraedenP 2011-04-22 01:18:45

+0

这正是我一直在寻找的。谢谢。 – santa 2011-04-22 20:22:52

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'); 
    } 
}); 
+0

如果你要去那么多麻烦值得指出,你真的想从jQuery获取错误参数,而不是丢弃它们;) – jcolebrand 2011-04-22 01:26:46

+0

@drachenstern:绝对 - 但是然后你想进入另一个关于为500个错误设置正确标题的讨论等,但这是另一个讨论;) – 2011-04-22 01:42:54