2012-10-29 38 views
1

我使用jQuery Ajax和PHP。當我用jQuery Ajax使用後,它發送請求到PHP(服務器)。在我的PHP代碼中,我想返回狀態成功或錯誤。如果發生錯誤,則發送錯誤代碼和錯誤消息,否則,成功返回成功代碼和消息。獲取錯誤或成功狀態在阿賈克斯與PHP

我如何能做到這一點jQuery的Ajax和PHP?

編輯:

$.post(url, { id: id }, 
function(data) { 
    // success code do here. 
}); 
+1

添加您的Ajax代碼爲明確的答案回吧! – Svetoslav

+0

您可以查看我的帖子編輯。對於我的jQuery ajax工作正常。我想要的是如何確定它是錯誤還是成功,以及如何在PHP代碼中進行響應。 –

+0

下面的鏈接處理成功和錯誤Ajax的帖子[**點擊**](http://stackoverflow.com/questions/2833951/how-to-catch-ajax-query-post-error) –

回答

4

只需用JSON編碼返回數組...

header('Content-Type: application/json'); 
$array = array("status"=>"success"); 
echo json_encode($array); 
exit(); 

出口是爲了防止任何進一步的迴音的。

在你的Ajax ..

$.post(url, { id: id }, 
function(data) { 
    alert(data.status); 
}, 'json'); 

的data.status等於你的php數組鍵狀態..

來正好趕上在阿賈克斯的錯誤。您可以設置簡單..

header('Content-Type: application/json'); 
echo "string whithout json_encode"; 
exit(); 

在這種情況下,改變你的Ajax來......

$.post(url, { id: id },function(data) {}, 'json') 
.success(function(data) { alert("success"); }) 
.error(function(data) { alert("error"); }); 
+0

在這種情況下,意味着所有狀態錯誤或成功是響應入阿賈克斯成功的功能。所以PHP中的所有代碼只返回json數據,這些數據確定它是錯誤還是成功,但是不能將它設置爲可以通過ajax –

+0

@ KH-DP捕獲的錯誤,您是正確的。 我個人更喜歡我的PHP告訴我,一切全成與否,而不是在阿賈克斯responde只相信。 這樣你就可以返回錯誤信息,如果失敗等。 – Svetoslav

+0

我還不知道如何從php返回錯誤,允許ajax抓住它... –

0

只是回聲

PHP: 
if($check == 0){ 
    echo 'success'; 
    exit(); 
} 
else { 
    echo 'failed'; 
    exit(); 
} 

jquery : 
$.post(url, { id: id }, 
function(data) { 
    alert(data); 
});