You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合Ajax使用jQuery DataTable?Laravel后端数据加载求助

正确结合Laravel Ajax与jQuery DataTables的方法

嘿,别慌!作为DataTables新手,其实不用手动拼接HTML内容——DataTables本身就内置了Ajax数据源支持,能帮你自动处理数据加载、分页、排序这些功能,咱们一步步来搞定:

1. 先准备好HTML表格结构

首先在页面里写一个标准的表格,要确保表头(<thead>)的列数和你要展示的字段对应:

<table id="ptTable" class="display" style="width:100%">
    <thead>
        <tr>
            <th>Kode PT</th>
            <th>Nama</th>
            <th>SK Path</th>
            <th>Email PJ</th>
            <th>Validasi</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

2. 初始化DataTables并配置Ajax

接下来用DataTables的初始化代码替代你原来的手动Ajax拼接逻辑,直接让DataTables自己去请求数据并渲染:

$(document).ready(function() {
    $('#ptTable').DataTable({
        // 配置Ajax请求
        ajax: {
            url: '{{ route('get.pt') }}', // Laravel路由生成的URL
            type: 'GET',
            dataSrc: '' // 关键!因为你的后端直接返回数组,不是{data: [...]}格式,所以设置为空字符串
        },
        // 配置每一列对应哪个JSON字段
        columns: [
            { data: 'kode_pt' },
            { data: 'nama' },
            { data: 'SK_path' },
            { data: 'email_PJ' },
            { data: 'validasi' }
        ],
        // 可选:添加一些常用配置,比如分页、搜索
        paging: true,
        searching: true,
        ordering: true
    });
});

3. 为什么这比手动拼接好?

  • 不用自己写循环拼接HTML,减少出错概率
  • 自动获得DataTables的核心功能:分页、排序、全局搜索,不用自己实现
  • 数据更新时可以直接调用table.ajax.reload()刷新,非常方便

额外注意事项

  • 确保你的Laravel后端接口返回的是纯JSON数组(就像你给出的示例那样),如果以后后端改成带包装的格式(比如{ "data": [...] }),记得把dataSrc改成'data'
  • 如果是POST请求,需要在Ajax配置里加上Laravel的CSRF令牌:
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
    
    同时页面里要先有CSRF meta标签:<meta name="csrf-token" content="{{ csrf_token() }}">

这样设置好之后,页面加载时DataTables就会自动发起Ajax请求,把后端返回的数据渲染到表格里,还自带各种好用的功能,是不是比手动拼接省心多啦!

内容的提问来源于stack exchange,提问作者Adis Azhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:47:43