2014-09-01 48 views
0

編輯:我修復了已在答案中提到的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));,那麼在錯誤數組上就沒有任何東西返回。謝謝

+0

是來自服務器的響應,當你做一個Ajax調用? – 2014-09-01 16:27:51

+0

是的 - 爲了成功,如果sql失敗,雖然我沒有得到任何迴應。 – Janey 2014-09-01 16:29:33

+0

你使用'+'來進行字符串連接嗎?它應該是'.'(這是'請再試一次'。+ $ custid') – Stryner 2014-09-01 16:30:45

回答

0

問題在您的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); 
} 
+0

嗨,感謝您的評論...我解決了這個問題,但仍然沒有任何錯誤返回...! – Janey 2014-09-01 16:37:35

0

如果你看一下這行:

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

你會看到,你使用+代替.,這是concatenation operator in PHP

+0

我已經解決了這個問題,它沒有區別....? – Janey 2014-09-01 16:36:18

0

它是正確的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); 
} 
+0

嗨...我做了這兩個更改,我仍然有同樣的問題... – Janey 2014-09-01 16:49:24

+0

然後可能有這種情況之前的錯誤;所以需要在這些行之前調試腳本 – 2014-09-01 16:55:32