2012-05-28 60 views
0

我有一個阿賈克斯問題給你所有。
我想從PHP中的ajax調用返回一個數組,然後從該數組中獲取值,我返回與jQuery ajax調用一起使用,但我不知道如何執行此操作。任何人都可以指引我正確的方向進行教程嗎?AJAX PHP多個響應

我知道有一堆的Ajax響應不同的編碼類型(json和xml想到),但我真的不知道有什麼用。現在我所做的只是迴應我在頁面上顯示的某些內容,但我想將當前的實現更改爲使用數組作爲響應,而不僅僅是簡單的文本。雖然我不知道從哪裏開始看關於如何做到這一點的教程。

此外,使用編碼類型的要點是什麼?如果我只能回顯我的文本並獲得我想要的內容?我想我真的沒有看到json類型或xml的重點,如果我只能回顯顯示。

回答

0

如果你要返回數組,我認爲JSON是最好的方法。

它確實很容易做到。

PHP:

$array=array();//this is my array 

$array=json_encode($array);//encode the array to JSON format, so that jQuery can decode it. 

echo $array;//print it on screen 

現在使用的一些jQuery的:編碼的數組

$.getJSON('http://mysite.com/myphpscript.php', function(my_data){ 

//now, my_data is your array.. 

//so access it like this: 

alert(my_data.keyname);//"keyname" is an array key of your array 

});//end of ajax request 

是讓jQuery的可以把它撿起來作爲陣列(JSON的幫助),而不僅僅是標準文本。

+0

hmm。我試過使用這個,但每次我做一個警報(data.keyname)它是未定義的?當我進入chromes xhr調試器時,儘管它顯示響應正在發送整個數組,但我認爲我只是無法從中獲取文本?我應該解碼數據還是什麼? – noname

+0

哈我的壞,忽略其他帖子。我不得不使用jquery解碼json數組。decodeJSON,然後使用data.keyname格式進行訪問。好東西雖然謝謝你的幫助! – noname

1

那麼,開始編碼類型是專門解決一個問題,如你所提出的。他們可以在響應中組織多個信息位,因此您可以從數據庫中返回數組,列表或多行等。

Json是我個人最喜歡的,因爲它的語法有多輕。爲了將數組從PHP傳遞到帶有AJAX的JavaScript,首先需要將數組編碼爲json(基本上採用PHP數組對象,並對其進行文本表示)。您可以使用PHP的json_encode()函數(PHP.NET reference)執行此操作。

接下來,您需要以某種方式獲取,我會在這裏推薦Jquery,因爲它們內置了函數。使用jQuery,您可以鍵入類似:

$.ajax({ 
    url: "ajax.php", 
    data: {"somedata":"somedata"}, 
    success: function (data) 
    { 
    alert(data); 
    }, 
    dataType: "json" /*now jquery will parse the json for you*/ 
}); 

在這段代碼,當阿賈克斯返回的信息中獲得成功的匿名函數將被調用。因爲jquery很棒,所以它已經解析了json,並將其放入對象數據中。現在您可以通過data.[ArrayKey]訪問您通過php傳遞的每個數組項目。

而且,你問了一個教程,這裏是一個,這似乎是相當不錯的:http://www.jquery4u.com/json/ajaxjquery-getjson-simple/#.T8PGz9VYua8

希望幫助解釋這一點更好,我可以給你舉個例子,如果你喜歡。