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

如何为Ajax驱动的DataTable启用分页?Express+MySQL分页失效解决

解决DataTable服务器端分页失效问题(Express+MySQL)

问题核心:你开启了serverSide: true,但后端没有处理DataTable自动发送的start(数据起始偏移量)和length(每页条数)参数,导致每次返回全量数据,分页功能失效。

修复步骤:

1. 后端接收分页参数并修改SQL查询

在你的Express后端代码中,添加对分页参数的处理,并在查询语句中加入LIMIT限制返回条数:

修改后的后端代码(关键部分):

// 新增:获取分页参数,处理默认值
var start = parseInt(req.query.start) || 0;
var length = parseInt(req.query.length) || 10;

// ... 原有排序、搜索逻辑保持不变 ...

// 修改查询数据的SQL,加入LIMIT
var sql = `SELECT * FROM datatable WHERE 1 ${search} ORDER BY ${column_name} ${column_sort_order} LIMIT ${start}, ${length}`;
var resultData = [];
con.query(sql, (err, data) => {
    if (err) throw err;
    data.forEach((item) => {
        resultData.push({
            tbl_nomor: item.nomor,
            tbl_kode: item.kode_pengguna,
            tbl_nama: item.nama_depan + " " + item.nama_belakang,
            tbl_status: item.status,
            tbl_aksi: "Aksi",
        });
    });
    var output = {
        draw: req.query.draw,
        recordsTotal: recordsTotal,
        recordsFiltered: recordsFiltered,
        data: resultData,
    };
    res.json(output);
});

额外提示:避免SQL注入风险

当前代码用字符串拼接生成SQL,存在SQL注入漏洞,建议改用参数绑定方式:

// 示例:用占位符替换字符串拼接
var sql = `SELECT * FROM datatable WHERE 1 = 1 
    AND (nomor LIKE ? OR nama_depan LIKE ? OR nama_belakang LIKE ? OR kode_pengguna LIKE ? OR status LIKE ?)
    ORDER BY ${column_name} ${column_sort_order} LIMIT ?, ?`;
// 处理搜索参数的通配符
var searchParams = [`%${search_value}%`, `%${search_value}%`, `%${search_value}%`, `%${search_value}%`, `%${search_value}%`, start, length];
con.query(sql, searchParams, (err, data) => {
    // ... 后续逻辑不变 ...
});

前端确认配置(可选)

前端代码已正确开启serverSide: true,可以显式添加pageLength确保每页条数:

var table = $("#example").DataTable({
    processing: true,
    serverSide: true,
    ajax: {
        url: "/penulis/daftar-penulis/data",
        type: "GET",
    },
    paging: true,
    pageLength: 10, // 显式指定每页条数
    // ... 其余配置不变 ...
});

内容的提问来源于stack exchange,提问作者15. Dwi Wahyu Ilahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:28:25