【问题标题】:jQuery sortable save issuejQuery可排序保存问题
【发布时间】:2012-12-13 13:33:59
【问题描述】:

我有以下功能可以将我的可排序 Portlet 保存在数据库中。 当我保存排序顺序时,在相应列中有一个 portlet 数组的变量 order 让我很难过。 实际上它应该返回数组的值,但在控制台甚至数据库中,当我尝试保存它时,它会保存为“数组”作为字符串而不是值字“数组”

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.'); }
     });  
});

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

【问题讨论】:

    标签: jquery arrays jquery-ui-sortable


    【解决方案1】:

    我认为您应该在发送之前将对象编码为 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']);
    

    这有帮助吗?

    【讨论】:

    • @Nimmi 在 javascript 或 php 端?
    • @Nimmi 可能是 $username 编码的问题。这不是很好,但一切都应该工作。你应该在 PHP 端得到一个不错的对象。
    • 知道如何使用 jquery 访问 $username 变量的值吗? json_encode 会有帮助吗?
    • 我现在已经跳过了没有数组的数组,因为我落后于我的截止日期。
    猜你喜欢
    • 2014-07-10
    • 1970-01-01
    • 2011-02-11
    • 2012-05-27
    • 2015-02-20
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多