2011-03-02 3 views
0

グリッドからサーバーにすべてのデータを保存しようとしています。 jquery Datatablesプラグインを使用しています。私が得るリターンとしてjQuery Datatablesを使用してすべてのグリッド値を一度にサーバーに送信する方法はありますか?

function fnSave() { 
    var aTrs = oTable.fnGetNodes(); 
    var aReturn = new Array(); 

    for(var i=0;i<aTrs.length;i++) { 
     var aData=oTable.fnGetData(i); 
     aReturn.push(aData); 
    } 

    console.log(aReturn); 
} 

"<input name="regimentNameAgents" value="" id="regimentNameAgents" type="text">" 
... 

私は唯一のグリッド値(とないHTML)を返すようにしたいと思います。

この関数を使用すると、入力にテキストを追加した場合でも、my値は常に:value = ""となります。なぜですか?

グリッドデータをすべて抽出する方法はありますか?

答えて

0

JDataTableに格納されているデータは、現在DOMにあるデータではなく、元々設定したものです。したがって、入力を更新するとDOM要素が更新されますが、jdatatableに保持されているデータを更新するためのフックはありません。

var grid = new Array(); 
$("table tr").each(function() { 
    var nextRow = new Array(); 
    grid.push(nextRow); 
    $("td", this).each(function() { 
     var nextValue = $("input", this).val(); 
     nextRow.push(nextValue); 
    }); 
}); 

grid変数は、データのあなたの完全なテーブルを格納する必要があります。私はこのような多くのグリッド何かを構築したいです。私はそこにあなたのテーブルをどのように構築したかについていくつかの仮定をしています。なぜなら、それは投稿されていないからです。しかし、あなたが持っているものにかなり近いと思います。 DataTable fnGetNodesを使用することにより

0

は、ここでの解決策は次のとおりです。

function fnSave() { 

        var aTrs = oTable.fnGetNodes(); 
        var aReturn = new Array(); 

        $(aTrs).each(function() { 
         var nextRow = new Array(); 
         aReturn.push(nextRow); 

         $("td", this).each(function() { 
         var nextValue = $("input", this).val(); 
         nextRow.push(nextValue); 
         }); 
        });     

       console.log(aReturn); 
} 
関連する問題