在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");
}
});
}
});
任何建议都将不胜感激。 =)
答案 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)
“success”。 每当返回另一个代码时(例如404,500),就会调用“错误”。
所以我认为你可以做两件事:
让你的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");
}
}