如何通过ajax发送JSON数组? [英] how to send JSON array through ajax?
问题描述
var storeSettings = [];
obj.find(o_widgetClass).each(function(){
var storeSettingsStr = {};
storeSettingsStr['id'] = $(this).attr('id');
storeSettingsStr['style'] = $(this).attr('data-widget-attstyle');
storeSettingsStr['title'] = $(this).children('header').children('h2').text();
storeSettingsStr['hidden'] = ($(this).is(':hidden') ? 1 : 0);
storeSettingsStr['collapsed'] = ($(this).hasClass('powerwidget-collapsed') ? 1 : 0);
storeSettings.push(storeSettingsStr);
});
var storeSettingsObj = JSON.stringify( {'widget':storeSettings} );
/* Place it in the storage(only if needed) */
if(getKeySettings != storeSettingsObj){
//alert(storeSettingsObj);
var memberfilter = new Array();
memberfilter[0] = "id";
memberfilter[1] = "style";
var jsonText = JSON.stringify(storeSettings, memberfilter);
alert(jsonText);
// it gives this result
[{"id":"widget1"},{"id":"widget3","style":"black"},{"id":"widget4"},{"id":"widget5"},{"id":"widget2","style":"black"},{"id":"widget6"},{"id":"widget7"},{"id":"widget9"},{"id":"widget8"},{"id":"widget10"},{"id":"widget12"},{"id":"widget13"},{"id":"widget11"},{"id":"widget14"}]
现在如何通过jquery ajax发送它?我正在尝试使用以下提到的代码,但尚无法在服务器上获取数据
Now how can i send it through jquery ajax ? i am trying with the below mentioned code but not yet able to do get data on server
$.ajax({
type: 'POST',
url: 'get_query.php',
data: "test="+jsonText,
success: function(data) {
alert(data);
}
});
所以您能解释一下如何发送然后如何获取此数据吗?我尝试用json_decode尝试但对我不起作用.
So could you plz explain how to send and then how to get this data ? i have tried with json_decode but not working for me.
在xdazz评论后进行编辑,以使其不带字符串即可发送
当我print_r($ _ POST ['test'])
Got this when i print_r($_POST['test'])
Array
( [0] =>数组 ( [id] => widget1 [title] =>隐藏的小部件 [隐藏] => 1 [崩溃] => 0 )
( [0] => Array ( [id] => widget1 [title] => Hidden widget [hidden] => 1 [collapsed] => 0 )
[1] => Array
(
[id] => widget3
[style] => red
[title] => Icons
[hidden] => 0
[collapsed] => 0
)
[2] => Array
(
[id] => widget4
[style] => black
[title] => No toggle button
[hidden] => 0
[collapsed] => 0
)
[3] => Array
(
[id] => widget5
[title] => No delete button
[hidden] => 0
[collapsed] => 0
)
[4] => Array
(
[id] => widget6
[title] => No edit button
[hidden] => 0
[collapsed] => 0
)
[5] => Array
(
[id] => widget7
[title] => Not fullscreen button
[hidden] => 0
[collapsed] => 0
)
[6] => Array
(
[id] => widget9
[title] => No custom button
[hidden] => 0
[collapsed] => 0
)
[7] => Array
(
[id] => widget8
[title] => Not sortable
[hidden] => 0
[collapsed] => 0
)
[8] => Array
(
[id] => widget10
[title] => Collapsed widget
[hidden] => 0
[collapsed] => 1
)
[9] => Array
(
[id] => widget12
[title] => Auto refresh
[hidden] => 0
[collapsed] => 0
)
[10] => Array
(
[id] => widget2
[style] => black
[title] => Basic widget
[hidden] => 0
[collapsed] => 0
)
[11] => Array
(
[id] => widget13
[title] => No timestamp
[hidden] => 0
[collapsed] => 0
)
[12] => Array
(
[id] => widget11
[title] => Ajax
[hidden] => 0
[collapsed] => 0
)
[13] => Array
(
[id] => widget14
[title] => No refresh button
[hidden] => 0
[collapsed] => 0
)
)
推荐答案
您无需对对象进行字符串化,直接将其用于data
属性.
You don't need to stringify the object, use it directly for the data
property.
$.ajax({
type: 'POST',
url: 'get_query.php',
data: {test: myvariable},
success: function(data) {
alert(data);
}
});
然后在php端,执行var_dump($_POST['test']);
来查看获得的内容.
Then in the php side, do var_dump($_POST['test']);
to see what you get.
这篇关于如何通过ajax发送JSON数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!