JQueryAjax JSON错误报告$.ajaxpost成功

JQuery Ajax JSON error reporting on $.ajax post success

本文关键字:ajaxpost 成功 报告 JSON 错误 JQueryAjax      更新时间:2023-09-26

EDIT:我修复了Answers中提到的PHP错误,但我仍然有同样的问题

如果POST请求失败,我将尝试显示一条错误消息,如果没有失败,则显示一条成功消息。它当前正确地显示了成功消息,但如果我使sql失败,则不会发生任何事情,即使在控制台中也是如此。

JQUERY://我已经删除了不必要的代码

        $("#form").validate({
        ignore:'',
        errorPlacement: function(error, element) {
            error.insertAfter(element.parent()); // <- make sure the error message appears after parent element (after textbox!)
        },
        rules: {
        },
        messages: {
        },
        submitHandler: function(form) { 
            var datastring = $("#form").serialize();
            $.ajax({
            type: "POST",
            url: "myscript.php",
            data: datastring,
            dataType:"json",
            success:  function (response) {
                if(response.status === "success") {
                    window.alert(response.comment);
                } else if(response.status === "error") {
                    window.alert(response.comment);
                }
             }
        }); // close $.ajax
    } // close submit handler 
}); //end validate

PHP:

    if($row = sasql_fetch_array($insert))
{   
    //success message 
    $arr = array ('status'=>'success','comment'=> $custid );
    echo json_encode($arr);

}  else {
    //error message
    $arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.');
    echo json_encode($arr);
}

有人知道这里的问题是什么吗?正如我所说,如果我在success函数之后添加console.log(JSON.stringify(response));,那么错误数组上就不会返回任何内容。感谢

如果您看到这一行:

$arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.'+$custid);

您将看到您使用的是+而不是.,后者是PHP中的串联运算符。

这是正确的php代码

if($row = sasql_fetch_array($insert))
{   
    //success message 
    $arr = array ('status'=>'success','comment'=> $custid );
    echo json_encode($arr);
}  else {
    //error message
    $arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.' . $custid);
    echo json_encode($arr);
}

php文件中的问题。失败部分出现语法错误。但不是成功。您使用了不需要的},并使用+而不是连接字符串。操作人员同时删除数组附近的空白。

    if($row = sasql_fetch_array($insert))
{   
    //success message 
    $arr = array ('status'=>'success','comment'=> $custid );
    echo json_encode($arr);
}
}  else {
    //error message
    $arr = array ('status'=>'error','comment'=>'There has been an error. Please try again.'+$custid);
    echo json_encode($arr);
}

应该是

    if($row = sasql_fetch_array($insert))
{   
    //success message 
    $arr = array('status'=>'success','comment'=> $custid );
    echo json_encode($arr);
}  else {
    //error message
    $arr = array('status'=>'error','comment'=>'There has been an error. Please try again.'.$custid);
    echo json_encode($arr);
}