我正在尝试做一些相当简单的事情,但我似乎无法找到解决方案。我想使用jQuery的.ajax函数将多维数组发布到php页面,但我似乎无法正确地序列化数组。
代码如下
var dataToSend = new Array();
dataToSend["page"] = location.href;
dataToSend["data"] = new Array();
var dataindex = 0;
jQuery(".myclass").each(function(){
dataToSend["data"][dataindex]=new Array();
dataToSend["data"][dataindex]["selector"] = unique_selector(jQuery(this), "");
dataToSend["data"][dataindex]["contents"] = jQuery(dataToSend["data"][dataindex]["selector"]).html();
});
jQuery.ajax({
type: 'POST',
url: "/main/save.php",
data: JSON.stringify(dataToSend),
dataType: "json",
success: function(data){alert(data);}
});
基本上我不确定如何正确传递dataToSend数组。现在firebug将帖子显示为空,即使数组中装载了各种好东西。
谢谢,
丹尼尔
答案 0 :(得分:11)
您正在定义new Array();
,但您将其用作new Object()
。尝试使用对象。
试试这个:
var dataToSend = {
page: location.href,
data: []
};
var dataindex = 0;
jQuery(".myclass").each(function(){
var temp = unique_selector(jQuery(this), "");
dataToSend.data[dataindex++] = {
selector: temp,
contents: jQuery(temp).html()
};
});
jQuery.ajax({
type: 'POST',
url: "/main/save.php",
data: JSON.stringify(dataToSend),
dataType: "json",
success: function(data){ alert(data); }
});
答案 1 :(得分:0)
取自PHP帮助页面:
你可能在表单输入中有多维数组
HTML示例:
<input name="data[User][firstname]" type="text" />
<input name="data[User][lastname]" type="text" />
...
内部php脚本 提交后,您可以访问单个元素,如下所示:
$firstname = $_POST['data']['User']['firstname'];
...
答案 2 :(得分:0)
使用
data: { '': dataToSend }
我在类似的场景中使用了它,它就像魅力......