我有以下功能将我的可排序portlet保存在数据库中。 当我保存排序的顺序时,在相应列中具有portlet数组的变量顺序给我带来了困难。 实际上它应该返回数组的值,但在控制台甚至在数据库中,当我尝试保存它时,它保存为'数组'作为字符串而不是值字'数组'
function saveOrder() {
$(".column").each(function(index, value){
var colid = value.id;
var order = $('#' + colid).sortable("toArray");
for ( var i = 0, n = order.length; i < n; i++ ) {
var v = $('#' + order[i] ).find('.portlet-content').attr('collapse');
var h = $(this).find(".portlet").is(':visible');
if (typeof v=="undefined") { v = "0"; }
order[i] = order[i] + ":" + v + ":" + h;
}
$.ajax({
type: "post",
url: "save.php",
data: {
order_status: order,
order_Id: colid,
username: <?php echo $username; ?>
},
dataType: 'json',
success: function(data) { console.log(data); alert('sent successfully.'); }
});
});
我真的被困住了,早期的反应将非常感激。 提前谢谢。
答案 0 :(得分:0)
我认为你应该在发送之前用JSON编码对象:
$.ajax({
type: "post",
url: "save.php",
data: "data=" + JSON.stringify({
order_status: order,
order_Id: colid,
username: <?php echo '"', $username, '"'; ?>
}),
并在服务器save.php脚本中使用
$post_data = json_decode($_POST['data']);
这有帮助吗?