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发送它?我正在尝试使用下面提到的代码但尚未能在服务器上获取数据
$.ajax({
type: 'POST',
url: 'get_query.php',
data: "test="+jsonText,
success: function(data) {
alert(data);
}
});
那么你能解释一下如何发送以及如何获取这些数据吗?我尝试过使用json_decode但不能为我工作。
在xdazz评论发送后无法使用stringify进行编辑
当我打印__($ _ POST ['test'])
时得到这个Array
( [0] =>排列 ( [id] => WIDGET1 [title] =>隐藏的小部件 [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
)
)
答案 0 :(得分:4)
您不需要对对象进行字符串化,直接将其用于data
属性。
$.ajax({
type: 'POST',
url: 'get_query.php',
data: {test: myvariable},
success: function(data) {
alert(data);
}
});
然后在php方面,var_dump($_POST['test']);
看看你得到了什么。
答案 1 :(得分:2)
你可以试试这个:
$.ajax({
type: 'POST',
url: 'get_query.php',
data: jsonText,
contentType: "application/json",
success: function(data) {
alert(data);
}
});
但在PHP方面,你需要$ GLOBALS [“HTTP_RAW_POST_DATA”];接收JSON数据。
答案 2 :(得分:0)
<script>
var information = ['hi','hello'];
$.ajax({
type: "POST",
data: {info: information, "action": "getUserRecords"},
url: "/var/www/pinboard/wp-content/themes/pinboard/userinfo.php",
success: function(msg) {
$('.userDetail').html(msg);
}
});
</script>