Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将值返回到ajax错误页面_Jquery_Ajax - Fatal编程技术网

Jquery 将值返回到ajax错误页面

Jquery 将值返回到ajax错误页面,jquery,ajax,Jquery,Ajax,如果以前有人问过,我最谦卑的道歉。我已经找遍了,似乎找不到我要找的东西 我正在序列化一个表单,通过ajax发送到php页面,以便包含到数据库中 我有成功和错误功能。当它刚刚成功时,它将所有内容返回到我的error div(正如我所预料的那样) 就像我说的,我现在有一个error函数,它返回错误,但它没有做我希望它做的事情 我希望它是success-show在success-div中,error-show在error-div中。现在,它在no-div中显示它,没有任何样式,它似乎只是在做succe

如果以前有人问过,我最谦卑的道歉。我已经找遍了,似乎找不到我要找的东西

我正在序列化一个表单,通过ajax发送到php页面,以便包含到数据库中

我有成功和错误功能。当它刚刚成功时,它将所有内容返回到我的error div(正如我所预料的那样)

就像我说的,我现在有一个error函数,它返回错误,但它没有做我希望它做的事情

我希望它是success-show在success-div中,error-show在error-div中。现在,它在no-div中显示它,没有任何样式,它似乎只是在做success函数中的任何事情

我猜我错过了一些简单的东西。任何帮助都将不胜感激

我的代码如下

$("#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数据,指示插入是成功还是失败。一次一点点。不要让大脑超负荷工作。哈哈,谢谢你的解决方案