0

ソート可能なポートレットをデータベースに保存する以下の機能があります。並べ替えた順序を保存すると、それぞれの列にポートレットの配列を持つ可変順序が苦労します。実際には配列の値を返す必要がありますが、コンソールまたはデータベースで保存しようとすると、値の単語「配列」ではなく文字列として「配列」として保存されます

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

私は本当に立ち往生しており、早期の対応は非常に高く評価されます. 前もって感謝します。

4

1 に答える 1

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

これは役に立ちますか?

于 2012-12-28T09:03:38.510 に答える