jQuery可排序保存问题

时间:2012-12-28 08:48:48

标签: jquery arrays jquery-ui-sortable

我有以下功能将我的可排序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.'); }
     });  
});

我真的被困住了,早期的反应将非常感激。 提前谢谢。

1 个答案:

答案 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']);

这有帮助吗?