2013-05-31 75 views
0

我想這樣做:構建參數數組在javascript

$.getJSON("myscript.php", {0: info[0].value, 1: info[1].value, 2: info[2].value ......}); 

如何建立一個循環來創建第二個對象(參數)?我試過以下,它不工作:

var n = info.length; 
var params = new Array(); 
for(i=0; i<n; i++) params[i] = info[i].value; 
$.getJSON("myscript.php", params); 

產生的GET來myscript.php成爲myscript.php?undefined=&undefined=&...

+1

這將是更多的慣用'$ .getJSON(「myscript.p hp,{data:params});'。然後在PHP中,$ _GET ['data']'將成爲數組。 – Barmar

+0

從關於'data'參數的[documentation](http://api.jquery.com/jQuery.getJSON/):*「用請求發送到服務器的普通對象或字符串。」*。數組既不是普通對象也不是字符串。 –

回答

4

創建params作爲一個對象,而不是一個數組

var n = info.length; 
var params = {}; 
for(i=0; i<n; i++) params[i] = info[i].value; 
$.getJSON("myscript.php", params); 

如果你想要陣列工作

var n = info.length; 
var params = new Array(); 
for(i=0; i<n; i++){ 
    params[i] = { 
     name: i, 
     value: info[i].value 
    } 
}; 
$.getJSON("myscript.php", params); 
+0

偉大的,那有效。謝謝。順便說一句,爲什麼陣列沒有工作? – David

+0

@Eric也許陣列工作,你需要推送項目:'params.push(info [i] .value);'?正如@ArunPJohny和@FelixKling指出的那樣,你必須使用一個對象。 – ahuth

+0

@Eric查看更新後的anwer –