AJAX / JQuery成功:/ error:函数操作

时间:2011-03-21 11:18:31

标签: php javascript jquery ajax

在AJAX / JQuery上遇到麻烦。以下是代码示例后面的问题的上下文:

我尝试做的是调用名为getInfo.php的PHP脚本,并检查数据库中是否包含某些数据。我可以很容易地编写查询,但就下面的代码示例而言,如果无法在数据库中找到数据并运行错误函数,我怎么能“告诉”成功函数失败?

$(document).ready(function(){
        getInfo();
        function getInfo(){
            $.ajax({
                type: "GET",
                url: "getInfo.php",
                data: "do=getInfo",
                cache: false,
                async: false,
                success: function(result) {
                    $("#myInfo").remove();
                    alert("Data found");
                },
                error: function(result) {
                    alert("Data not found");
                }
            });
        }
});

任何建议都将不胜感激。 =)

4 个答案:

答案 0 :(得分:5)

错误处理程序用于处理AJAX调用中的错误。

如果找到数据,您可以在PHP脚本中回显1,如果找不到,则回复0。然后,您可以使用if语句来确定要执行的操作。例如:

success: function(result)
{
    if(result == 1)
    {                    
        $("#myInfo").remove();
        alert("Data found");
    }
    else
    {
        alert("Data not found");
    }
},

答案 1 :(得分:3)

当返回的代码是“200”(成功请求)时,将调用

“success”。 每当返回另一个代码时(例如404,500),就会调用“错误”。

所以我认为你可以做两件事:

  • 让PHP返回404,以便调用错误函数
  • 让你的getinfo.php返回一个布尔值(通常是我的方法)

    {“成功”:是的,......}

答案 2 :(得分:2)

您正在使用的'错误'功能用于识别和处理AJAX错误,而不是脚本错误。如果找到你正在调用的脚本,并且它执行时没有意外终止(即它有错误!),那么它被认为是成功的。

最好的办法是让你的getInfo.php脚本返回你可以在success函数中使用的东西;例如结果集中的行数等等 - 那么你可以检查成功()是否有相应的数据和代码。

答案 3 :(得分:0)

我认为你的getInfo.php页面应该只打印SUCCESS或FAIL并在你的成功方法中做

success: function(result) {
        if (result == 'SUCCESS')
        {
          $("#myInfo").remove();
          alert("Data found");
        }
        else
        {
          alert("Data not found");
        }
    }