我试图将一个数组传递给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