我想使用Jquery Ajax将数组发布到php。这可能吗 ?
由于
修改
我试过以下:
type: "POST",
url: "path",
data: "styles=" + strstyles + "&templateId=" + custTempId, //strstyles is an associative array
dataType: "json",
success: function (data) { .....}
但是,样式没有数据。在将数据类型添加到声明之前,我花了很多时间。 “样式”被发布为null的原因是什么?
第二次修改
我想发布样式表dom对象并将类名和属性保存到DB。通过上面的编辑,添加数据类型没有帮助。我认为这是b'coz字符串不是json格式如下 -
{"a":1,"b":2,"c":3,"d":4,"e":5}
因为我的字符串有双引号,所以它不遵循格式,我认为这就是原因,我得到一个空数组。我怎么处理这个?
答案 0 :(得分:2)
使用jQuery非常简单:
$.ajax({
type: "POST",
url: location.href,
data: data,//data is array
dataType: "json",
success : function () {
// Something after success
}
});
答案 1 :(得分:0)
您也可以按照以下方式使用
$.ajax({
type: "POST",
url: location.href,
data: ({'data[]' : array}),//array is array
dataType: "json",
success : function () {
// Something after success
}
});
答案 2 :(得分:0)
如果您不想使用JSON,PHP可以自动创建arrays from Html forms 所以你可以这样做:
type: "POST",
url: "path",
data: "styles[key1]=" + strstyles.val1 + "&styles[key2]=" + strstyles.val2 + ... + "&templateId=" + custTempId
...
如果你想在php中有一个关联数组,但如果你只想要一个数组就可以做到
data: "styles[]=" + strstyles.val1 + "&templateId=" + custTempId
答案 3 :(得分:0)
在POST电话中,你不要使用& ,所以你的代码应该是
之类的东西type: "POST",
url: "path",
data: {styles: strstyles , templateId: custTempId}, //strstyles is an associative array
dataType: "json",
success: function (data) { .....}
那是清楚的吗?
所以来我的解决方案,
var strstylesOBJ = {};
将strstyles
数组插入strstylesOBJ
并对其进行字符串化,然后在通话中传递给它
strstylesOBJ.styles = strstyles;
strstyles = JSON.stringify(strstylesOBJ);
在PHP代码中,您使用$strstyles = json_decode($_POST['styles']);
执行var_dump($strstyles)
并告知输出结果。
问候
Ayaz Alavi