Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquerydatatables一次将所有网格值提交到服务器?_Javascript_Jquery_Jquery Plugins_Datatables - Fatal编程技术网

Javascript 如何使用jquerydatatables一次将所有网格值提交到服务器?

Javascript 如何使用jquerydatatables一次将所有网格值提交到服务器?,javascript,jquery,jquery-plugins,datatables,Javascript,Jquery,Jquery Plugins,Datatables,我希望将所有数据从网格保存到服务器。我正在使用jquerydatatables插件 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 ); }

我希望将所有数据从网格保存到服务器。我正在使用jquerydatatables插件

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);
}
函数fnSave(){
var aTrs=oTable.fnGetNodes();
var aReturn=新数组();

对于(var i=0;i存储在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);
    });
});

然后,
网格
变量应该存储您的完整数据表。我对您如何在那里构建表做了一些假设,因为它没有发布,但我猜这与您得到的非常接近。

通过使用Datatables fGetNodes,以下是解决方案:

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