在单击按钮时作为参数传递的数据表对象


Datatable object passed as parameters on button click

我想在laravel的post方法中将datatable对象作为参数传递给控制器。我试过了,但没有用,请帮忙。下面是我试过的代码。

Datatable Object

 Array
 (
 [draw] => 1
 [columns] => Array
    (
        [0] => Array
            (
                [data] => id
                [name] => 
                [searchable] => true
                [orderable] => true
                [search] => Array
                    (
                        [value] => 
                        [regex] => false
                    )
            )
        [1] => Array
            (
                [data] => name
                [name] => 
                [searchable] => true
                [orderable] => true
                [search] => Array
                    (
                        [value] => 
                        [regex] => false
                    )
            )
    )
[order] => Array
    (
        [0] => Array
            (
                [column] => 0
                [dir] => asc
            )
    )
[start] => 0
[length] => 10
[search] => Array
    (
        [value] => 
        [regex] => false
    )
[_token] => RwkzmLMcy9VW9bzwPN54zv320YsY7Rwbt7sPZCzm

)

下面是Jquery数据表列表工作良好

var oTable = $('#dataTables-baselineComplete').dataTable({                          
          "processing": true,
          "serverSide": true,     
          "ajax": {
            "url": "{!!url('admin/baselinereport')!!}",
            "type": "POST",
            "data":{"_token": "{{ csrf_token() }}"},
          },
          "columns": [
                { "data": "id" },
                { "data": "name" },                 
          ],
        });

我想把这个datatable对象传递给另一个路由函数。请帮助

Html输入

<input type="button" name="search" id="search"/>
Jquery

$("#search").click(function(){      
 $.ajax({
    url:'{!!url('admin/sample')!!}',
    method:'POST',
    data:{"_token": "{{ csrf_token() }}","datatable_object": oTable},
    success:function(response){
    }
 });

});

路线
 Route::post('admin/sample','SampleController@sampleFn');       

当我点击搜索按钮- ajax调用和post这个数据表对象作为输入到SampleController - sampleFn()。请帮忙提前致谢。

您可以使用ajax.params()获取DataTables在最后一次Ajax请求中提交给服务器的数据。

因为你已经用dataTable()而不是DataTable()初始化你的表,你必须调用这个API方法作为oTable.api().ajax.params()

例如:

$.ajax({
    url:'{!!url('admin/sample')!!}',
    method:'POST',
    data:{
        "_token": "{{ csrf_token() }}",
        "datatable_object": oTable.api().ajax.params()
    },
    success:function(response){
    }
});