我有一个看起来像
的json字符串[{"tagid":"1","name":"scandalous"},{"tagid":"4","name":"finance"}]
表单正在提交
序列化var datastring=$(this).serializeArray();
我需要将json字符串作为tagsArray与表单一起发布,以便我可以将其作为
进行访问$_POST['tagsArray'] then json decode it so it can be looped through.
帮助非常感谢。
答案 0 :(得分:0)
尝试使用JSON.stringify()
var data = JSON.stringify([{"tagid":"1","name":"scandalous"},
{"tagid":"4","name":"finance"}]);
$.ajax({
url: "/path/to/url",
type: "POST",
dataType: "json",
contentType: "json",
data: data,
success: function(){
alert("success :-)");
},
error: function(){
alert("fail :-(");
}
});
我写了一个使用JSON序列化表单的扩展:
$.extend({
formSerializer: new function () {
var _self = this;
_self.jsonSerialize = function (form) {
var _data = {};
var _items = form.serializeArray();
for (var i = 0; i < _items.length; i++)
_data[_items[i].name] = _items[i].value;
return _data;
};
},
});
拥有此扩展程序即可:
var form = $(this);
var data = $.formSerializer.jsonSerialize(form);
data.anotherArray = [{"tagid":"1","name":"scandalous"},
{"tagid":"4","name":"finance"}];
$.ajax({
url: "/path/to/url",
type: "POST",
dataType: "json",
contentType: "json",
data: data,
success: function(){
alert("success :-)");
},
error: function(){
alert("fail :-(");
}
});