2009-06-17 65 views
4

使用$ .post,您可以將信息發送到服務器,但是什麼時候需要從服務器接收信息?用AJAX來回發送信息

如何被,可以由一個PHP變量舉行地位,這可以通過JavaScript變量,反之亦然舉行的方式的方式信息變化?

回答

6

這是更切合你的問題:http://docs.jquery.com/Ajax/jQuery.post

警報了從請求的test.php(HTML或XML,根據返回的)的結果。

$.post("test.php", function(data){ 
    alert("Data Loaded: " + data); 
}); 

警報出從請求test.php的數據的附加載荷(HTML或XML,根據返回的)的結果。

$.post("test.php", { name: "John", time: "2pm" }, 
    function(data){ 
    alert("Data Loaded: " + data); 
    }); 

獲取test.php頁面內容,將其存儲在XMLHttpResponse對象中並應用process()JavaScript函數。

$.post("test.php", { name: "John", time: "2pm" }, 
    function(data){ 
    process(data); 
    }, "xml"); 

獲得已JSON格式( 「約翰」, 「時間」=> 「下午」))被返回的test.php的頁面的內容; ?>)

$.post("test.php", { func: "getNameAndTime" }, 
    function(data){ 
    alert(data.name); // John 
    console.log(data.time); // 2pm 
    }, "json"); 
4

結賬json_encode()json_decode()。這些現在是PHP的一部分,並允許您在PHP數組和關聯數組(或stdClass對象)和JavaScript數組或對象(如JSON文字)之間來回切換。

本質上,而不是返回XML或HTML,你可以做echo json_encode($all_my_php_data);並取回一個JavaScript對象。

如果傳遞「JSON」作爲您$。員額的類型參數(),您的成功回調將包含你已經在你的PHP腳本呼應了JSON對象。

$.post() documentation

0

然後您需要接收從服務器發回的內容。您只需使用'data'參數爲$ .post定義回調函數。例如:

$.post('/index.php', { key: 'value' }, function(data) { alert(data); }); 

您可以指定返回值的類型,以便jQuery可以自動處理它。如果從PHP腳本返回JSON值,那麼你應該在末尾添加額外的參數:

$.post('/index.php', { key: 'value' }, function(data) { 
    alert(data.someItem); 
    }, 'json'); 

但是如果你需要從PHP服務器的數據,而無需繳納或者先得到任何東西,那麼你就需要實現彗星。但是,這是多一點工作:)

+0

所有主要的彗星實現使用GET或POST。 – 2009-06-17 17:07:09

0

在HTTP中從客戶端(在JavaScript的Web瀏覽器)向服務器執行的請求,然後處理由後者返回的信息。該方式在信息通信雙方表示的選擇是由你。當使用AJAX(可能通過jQuery)時,可以向php處理程序發出請求,該處理程序負責將信息返回給瀏覽器,通常格式爲JSON文字(您可以使用json_encode()編碼響應) ,正如Brian所建議的那樣)。最終,您將在客戶端解析它(例如使用jQuery)來獲取JavaScript對象。 ($ .post(url,[data],[callback],[type])函數會自動解析響應並將其傳遞給回調函數,回調函數的簽名應該是callback(data,textStatus),其中數據是成爲解析對象和textStatus報告成功或失敗狀態(jQuery.post)。