2011-06-07 34 views
2

我想獲得一個PHP文件設置,以從jQuery AJAX調用中返回MySQL數據庫查詢的結果。返回結果將是一個數組。我有一個非常基本的啓動在那裏,我只是得到一些基本的數據來回往返PHP文件,但我堅持一些基本的語法問題:

的PHP代碼:

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 
echo json_encode($arr); 

jQuery的代碼:

$.post("dbFile.php", str, function(theResponse){ 
    alert('the response: ' + theResponse); 
    var obj = $.parseJSON(theResponse); 
    alert(obj.a); 

我可以打印出obj.a,obj.b,obj.c ...沒問題。問題是當我通過My​​SQL結果遞增時,我將增加一個計數器。因此,陣列未使用字母,它採用數字:

$arr[$i] = mysqlresults ... $i++; 

因此,在JavaScript/jQuery的我有一個對象(不是一個數組)。例如,我可以打印出obj.a,但我無法打印出obj.2(例如)。換句話說,如果我用php數組中的數字替換字母,我不知道如何用JavaScript/jQuery打印出來。我能否以某種方式將parseJSON返回的對象更改爲數組(以便我可以循環)?

+1

如果用'echo json_encode(array_values($ arr));'發送結果''它將保證是一個普通的(連續索引的)Javascript數組。 – mario 2011-06-07 03:40:44

回答

2

您可以使用:

alert(obj['a']); 

更多信息,請參見this question

5

使用數組訪問語法:

alert(obj[42]);