Javascript JQuery Ajax JSON错误报告$.Ajax post成功

Javascript JQuery Ajax JSON错误报告$.Ajax post成功,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,编辑:我修复了在答案中提到的PHP错误,但我仍然有相同的问题 如果POST请求失败,我试图显示一条错误消息,如果没有失败,则显示一条成功消息。它当前正确地显示了成功消息,但如果我使sql失败,则不会发生任何事情,即使在控制台中也是如此 JQUERY://我删除了不必要的代码 $("#form").validate({ ignore:'', errorPlacement: function(error, element) {

编辑:我修复了在答案中提到的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

有没有人知道这里会有什么问题?如我所说,如果我添加console.logJSON.stringifyresponse;就在success函数之后,错误数组上没有返回任何内容。谢谢你的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);
}

如果你看这一行:

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

您将看到您使用的是+而不是。

这是正确的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);
}

这就是当您进行ajax调用时服务器的响应?是的,如果sql失败,尽管我没有得到响应,那么就成功了。您是否使用+进行字符串连接?应该是。这是在,请重试。“+$custidremove}之前else@Mudaser阿里,这给了我一个错误信息…嗨,谢谢你的评论。。。我修复了这个,仍然没有返回任何错误。。。!那么在这个条件之前可能有一个错误;所以需要在这些行之前调试脚本
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);
}