2010-08-12 58 views
0

我試圖將數據作爲數組作爲數組返回到成功的.ajax函數,因此我可以做多件事情,但除了單個值之外,我無法完成任何工作。像返回$ foo一樣。但是當我返回$ array時,頁面不會加載。成功將數組獲取到.ajax

回答

0

你必須將您的數據序列化爲一個字符串。我的首選是JSON,所以如果你的PHP版本是> = 5.2.0,你很可能有權訪問json_encode函數。這將把PHP對象變成一個JSON字符串。如果您無權訪問json_encode,則可以使用PECL JSON package

看着你引用你的「.ajax」函數的方式,我假設jQuery。因此,只要您將內容類型設置爲'json',JSON響應就會生成一個本地JavaScript對象。例如,

PHP,

return json_encode(array(1, 2, 3)); 

的JavaScript,

$.ajax({ 
    ... 
    contentType: 'json', 
    success: function(response) { 
    for (var i = 0; i < response.length; i++) { 
     alert(response[i]); 
    } 
}); 

此代碼應繼續提醒1,2,然後3

我沒有驗證碼,但重要的部分都在那裏。儘管如此,正常的索引數組變成了JavaScript列表,而關聯數組將變成JavaScript對象。

1

JavaScript的使用&利用數組與PHP的處理相比是不同的。因此,無論您需要將數據作爲JSON(JavaScript對象表示法)發送到您的AJAX函數,您都需要將數據作爲字符串以及通用分隔符發送到您的AJAX函數。

在後一種情況下,您需要將AJAX函數中的響應文本與該公共分隔符分開以組成一個JS Array。那麼使用該數組將非常容易。

希望它有幫助。

0

JSON是將您的數據數組從PHP發送到Javascript的好選擇。在PHP方面,編碼並返回數據數組作爲JSON字符串,並在Javascript方面解碼該JSON字符串並用作普通數組。

假設您的數據陣列與$array類似,您的PHP代碼只需使用json_encode($array)對該數組進行編碼並返回結果JSON字符串。

在JavaScript代碼解碼是JSON字符串使用 '的eval' 功能成功的回調函數,如:

 
$.ajax({ 
    type: "GET", 
    url: "test.php", 
    success: function(data) { 
    var dataArray = eval('(' + data + ')'); 
    } 
}); 

我認爲這將有助於你...

溼婆

相關問題