为 ajax 响应自定义 DataTables 分页

Posted

技术标签:

【中文标题】为 ajax 响应自定义 DataTables 分页【英文标题】:Customize DataTables pagination fror ajax response 【发布时间】:2019-08-18 21:37:36 【问题描述】:

您好,有一个用 Laravel 制作的 api。此 api 将返回数据的分页记录。所以它将包括数据、计数、总计、hasMorePages 和 currentPage。我回来了

如何自定义 DataTable 中的分页链接?另外,我想放一个回调 ajax 函数来获取下一页。我检查了文档https://datatables.net/reference/option/serverSide

但我找不到符合我要求的东西。这是我的javascript

$("#search_games").click(function()
var from = $("#from_date").val();
var to = $("#to_date").val();
console.log(from);
console.log(to);

$.post("/api/v1/get_games_result",  from: from, to: to , function (data) 
    if ( ! $.fn.DataTable.isDataTable( '#example' ) ) 
        var t = $('#example').DataTable();
        t.clear().draw();
        var count = data.count;
        var currentPage = data.currentPage;
        var hasMorePages = data.hasMorePages;
        var total = data.total;
        var records = data.data;
        console.log(records.length);

        $.each(records, function (key, value) 
            var game_data = value.game_data;

            t.row.add( [
                game_data.game_id,
                game_data.game_date+" "+game_data.game_time,
                game_data.game_closing
            ] ).draw( false );

        );
    
    var info = t.page.info();
    console.log(data);
);

);

我想做一个功能,当用户点击分页页面按钮时,我会请求下一页:

【问题讨论】:

我希望您看过数据表服务器端处理示例。我想这应该对你有所帮助。我不知道 Laravel,但示例 here 是在 php 中应该足够了。 @PriyankPanchal 谢谢。我看过了,但是这个例子和我的 api return 很不一样 所以我假设您不需要任何搜索或排序功能?因为如果您实现自己的 API,搜索和排序将无法正常工作。因为它只会搜索和排序表中显示的数据,而不是从服务器获取。 【参考方案1】:

我认为您获得了 Next 链接的 ID。

然后在IF子句中添加点击事件:

if ( ! $.fn.DataTable.isDataTable( '#example' ) ) 
    <....>
    $('#ID of Next link').click(function() 
      Repost JSON Code here;
    );

【讨论】:

以上是关于为 ajax 响应自定义 DataTables 分页的主要内容,如果未能解决你的问题,请参考以下文章

DataTables - 创建自定义分页样式(加载更多样式)

datatables使用方式

为啥 DataTables 在渲染函数中剥离自定义属性?

DataTables 时刻按自定义格式排序

使用DataTables的服务器分页

jquery datatables添加带有ajax服务器端响应的复选框