我試圖將一個數組傳遞給jquery的.ajax()函數的數據參數。第一種方法是,我做我的2維數組是這樣的:Javascript - 這個對象定義符號有什麼區別?
var arr = new Array();
for(i in someArray){
arr[i] = new Array();
arr[i].lon = "x";
arr[i].lat = "y";
}
然後我試圖通過以此爲數據在$阿賈克斯():
$.ajax({
data: { vals : arr },
async: false,
type: "POST",
url: "namedb.php",
dataType: "script",
success: function(data){
result = data;
alert(result);
}
});
測試.php只是返回所有值$ _POST。所以警報()這裏返回:
Array
(
)
但是,如果我改變了代碼:
var arr = new Array();
for(i in someArray){
arr[i] = new Array();
arr[i] = { lon: "x", lat: "y" };
}
的警報()返回我的預期:
Array
(
[vals] => Array
(
[0] => Array
(
[lat] => "y",
[lon] => "x"
)
...
)
)
我知道這兩種方法初始化每個元素的變量/屬性arr (或者我錯了嗎?)。但爲什麼2方法的行爲不同? (抱歉,我可以縮短我的問題,但我想我需要解釋我是如何找到它的)。
編輯:我已經添加了初始化(arr [i] = new Array();)。在編輯問題的過程中,我一定把它擦掉了。但仍然是同樣的問題。
您可以加入你的'從OP,「援引test.php'代碼 – 2011-02-26 08:13:23
test.php的只是返回所有$ _POST「的值,以便代碼可以是<?php print_r($ _ POST);' – Thai 2011-02-26 08:22:46
@Thai。是的,就是這麼簡單。 – Jairo 2011-02-26 08:25:25