Jquery 将值返回到ajax错误页面
如果以前有人问过,我最谦卑的道歉。我已经找遍了,似乎找不到我要找的东西 我正在序列化一个表单,通过ajax发送到php页面,以便包含到数据库中 我有成功和错误功能。当它刚刚成功时,它将所有内容返回到我的error div(正如我所预料的那样) 就像我说的,我现在有一个error函数,它返回错误,但它没有做我希望它做的事情 我希望它是success-show在success-div中,error-show在error-div中。现在,它在no-div中显示它,没有任何样式,它似乎只是在做success函数中的任何事情 我猜我错过了一些简单的东西。任何帮助都将不胜感激 我的代码如下Jquery 将值返回到ajax错误页面,jquery,ajax,Jquery,Ajax,如果以前有人问过,我最谦卑的道歉。我已经找遍了,似乎找不到我要找的东西 我正在序列化一个表单,通过ajax发送到php页面,以便包含到数据库中 我有成功和错误功能。当它刚刚成功时,它将所有内容返回到我的error div(正如我所预料的那样) 就像我说的,我现在有一个error函数,它返回错误,但它没有做我希望它做的事情 我希望它是success-show在success-div中,error-show在error-div中。现在,它在no-div中显示它,没有任何样式,它似乎只是在做succe
$("#insert").click(function()
{
var formstuff = $('#person-data').serialize();
$.ajax(
{
url: 'insert.php',
type: "POST",
data: formstuff,
success: function(data)
{
$('#error').hide();
$('#error').html('');
$('#success').append(data);
$('#success').fadeIn(1500);
$("#person-data")[0].reset();
$('#username').css('border', 'none');
$('#username').css('background-color', '#FFF');
$('#username').css('color', '#000');
$('#username').css('background-image', 'url(images/txtbox/id.png)');
},
error: function(data)
{
$("#error").append(data);
$("#error").fadeIn(1500);
}
}
);
return false;
});
提前感谢jQuery函数的
error
属性实际上接受了一个包含三个参数的函数:
类型:函数(jqXHR jqXHR、字符串textStatus、字符串ERRORSHORN)
请求失败时要调用的函数。该函数接收三个参数:jqXHR(在jQuery 1.4.x中,XMLHttpRequest)对象、描述发生的错误类型的字符串和可选的异常对象(如果发生)。第二个参数(除null外)的可能值为“timeout”、“error”、“abort”和“parserror”。当HTTP错误发生时,ErrorSprown将接收HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。从jQuery 1.5开始,错误设置可以接受函数数组。每个函数将依次调用。注意:跨域脚本和跨域JSONP请求不调用此处理程序。这是一个Ajax事件
您的函数只定义一个参数,data
。这样做,您正试图将jqXHR对象写入div。您应该改为编写errorshown
如果希望通过error函数处理错误消息,那么后端服务器代码(在本例中为PHP)必须将HTTP状态代码设置为200以外的值。您的脚本必须指示发生了错误。可能使用
500
状态。您可以使用.在PHP中设置HTTP状态。至于样式问题,您是否可以发布您的#success
HTML以及您在success函数中引用的其他元素?至于,它似乎只是在做success函数中的任何事情
——AJAX的success函数并不意味着PHP脚本已按预期执行,它只是指对该脚本的请求是否成功(例如,如果目标URL不存在,则会触发错误处理程序)@scrowler这是输入记录时从数据库返回的内容(当然文件中有正确的PHP格式):$firstname$lastname$address1
[$email1]
在$cat下归档的
在$Date的$Time成功输入数据库我希望返回错误(例如,当有重复条目时)我理解你的意思——我想PHP脚本的任何响应都被认为是对ajax的成功响应。那么,有没有一种方法可以区分PHP端,使其位于正确的分区中?区分PHP成功/失败的最简单方法是
echo'success'代码>或回显“失败”代码>-但我通常会回显一个json\u encode
d结果对象,在我的AJAX调用中设置dataType:'json'
,然后查找它。因此,在我的PHP脚本中,我有以下if(!mysql\u query($sqlp,$conn)){die(“Error:.mysql\u Error()”;echo“Error:.mysql\u Error()”;}else{echo“$firstname$lastname
}我是否将HTTP状态放在if(!mysql_query())中?看,我运行了其中的5个,因为它将数据放入5个不同的表中。正如您所知,我对ajax和jqueryYes还不熟悉,您应该在if语句中设置http响应代码。不过,我更喜欢@scrowler的解决方案,它返回JSON数据,指示插入是成功还是失败。一次一点点。不要让大脑超负荷工作。哈哈,谢谢你的解决方案