2011-10-20 18 views
0

データベースから状態をロードする必要があります。私は国家(ColReorder、ColVisなど)をどのように変えることができないのか分かりません。 最初のロードでは、fnStateLoadCallbackのマイデータベースから設定を行います。 次に、daボタンをクリックしてoTableDrucken.fnReloadAjax();をクリックし、データベースから新しい設定を行いますが、彼はfnStateLoadCallback関数を渡しません。JQuery-Pluginデータベースからのデータの状態

oTableDrucken = $('#table_drucken').dataTable({ 
     "bServerSide": false, 
     "bProcessing": true, 
     "bLengthChange": false, 
     "bAutoWidth" : false, 
       "oColVis": { 
        "buttonText": "Zeige/Verstecke Spalten" 
       }, 
     "sDom": 'r<"F"<"toolbar"RfC>>t<"F"i>', 
     "sAjaxSource": "includes/sites/json_data.php", 
       "fnServerData": function(sSource, aoData, fnCallback ) { 
       $.ajax({ 
        "dataType": 'json', 
        "type": "POST", 
        "url": sSource, 
        "data": aoData, 
        "success": fnCallback 
       }); 
     }, 
     "fnInitComplete": function (sdata,responseData) { 
        init_TableTools(oTableDrucken,responseData["logo"]); 
     }, 
     "aoColumns": [   
      /* 1 ID */ { "sClass": "name", "mDataProp": "id" , "sName": "id" }, 
      /* 2 Name */ { "sClass": "name", "mDataProp": "name" , "sName": "name" },  
     ], 
       "bStateSave": true, 
       "fnStateSaveCallback": function (oSettings, sValue) { 
      //Gives me the ColReorder Settings 
      var valueObj = $(oTableDrucken).dataTable().dataTableSettings[0].aoStateSave[1].fn(null,sValue)+"}"; 
        dataTableSettings = $.parseJSON(valueObj); 
      return sValue; 
       }, 
       "fnCookieCallback": function(sName, oData, sExpires, sPath) { 
        console.log("cookieCallback"); 
        return sName + "="+JSON.stringify(oData)+"; expires=" + sExpires +"; path=" + sPath; 
       }, 
       "fnStateLoadCallback": function (oSettings, oData) { 
        oData.ColReorder = dataTableSettings.ColReorder; 
       oData.abVisCols = dataTableSettings.abVisCols; 
      return true; 
      }, 
     "bJQueryUI": true, 
     "bPaginate": false, 
     "bLengthChange": false, 
     "bFilter": true, 
     "bSort": true, 
     "bInfo": true, 
     "oLanguage": oCustomLanguage("drucken") 
}); 
私が解析するのjQueryを使用してい

(非同期偽のロード中にtrueにbStateSaveを設定し、設定することを忘れないでください)fnStateSaveとfnStateLoad機能を使用し、保存し、データベースにデータテーブルの設定をロードするには

答えて

0

JSONは、設定がデータベースに保存されていないとJSON.parseによってエラーが発生するためです。

<script> 
var oTable = $('.phonebook').dataTable({ 
    "bStateSave": true, 
    "fnStateLoad": function (oSettings, oData) { 
     var o; 

     $.ajax({ 
      type: "POST", 
      url: "/ajax/loadState", 
      async: false, 
     }).done(function(data) { 
      o = $.parseJSON(data); 
     }); 

     return o; 
    }, 
    "fnStateSave": function (oSettings, oData) { 
     $.ajax({ 
      type: "POST", 
      url: "/ajax/saveState", 
      data: "data=" + JSON.stringify(oData), 
     }); 
    }, 
}); 
</script> 
関連する問題