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

如何通过外部AJAX调用获取Datatables的筛选、排序等查询参数

你可以通过DataTables提供的原生API直接获取所需的所有请求参数,以下是具体实现方式:

方案1:直接调用内置方法获取完整参数(推荐)

DataTables内置的table.ajax.params()方法可以直接返回和内置ajax请求完全一致的所有参数,包含order、search、start、length、列筛选值等所有你需要的字段,直接把返回的对象放到你自定义AJAX的data参数中即可。
修改后的getDT函数代码如下:

function getDT() {
  // 直接获取DataTables自动生成的所有请求参数
  const dtRequestParams = table.ajax.params();
  $.ajax({
    type: 'GET',
    url: '/ajax/objects.txt',
    data: dtRequestParams, // 携带参数发送
  }).done(function (result) {
    result = JSON.parse(result);
    table.clear();
    table.rows.add(result.data).draw();
  });
}

方案2:手动拼接参数

如果你初始化DataTables时没有配置ajax属性导致ajax.params()无法返回有效参数,可以通过各独立API分别获取对应参数自行拼接:

function getDT() {
  // 获取分页参数
  const pageInfo = table.page.info();
  // 获取排序参数
  const orderConfig = table.order();
  // 获取全局搜索参数
  const globalSearch = table.search();
  // 拼接为和内置请求结构一致的参数对象
  const dtRequestParams = {
    draw: pageInfo.page + 1,
    start: pageInfo.start,
    length: pageInfo.length,
    'search[value]': globalSearch,
    'order[0][column]': orderConfig[0][0],
    'order[0][dir]': orderConfig[0][1],
    // 如需多列排序/单列筛选,可遍历order数组/列对象拼接对应参数即可
  };
  $.ajax({
    type: 'GET',
    url: '/ajax/objects.txt',
    data: dtRequestParams,
  }).done(function (result) {
    result = JSON.parse(result);
    table.clear();
    table.rows.add(result.data).draw();
  });
}

更简便的优化方案

如果你的需求只是点击按钮触发AJAX刷新,不需要额外自定义AJAX逻辑,完全可以直接使用DataTables的内置ajax能力,不用自己写完整AJAX请求:

  1. 初始化时配置ajax参数:
table = $('#example').DataTable({
  ajax: {
    url: '/ajax/objects.txt',
    method: 'GET',
    dataSrc: 'data' // 直接指定返回结果中数据数组的字段名,无需手动解析
  },
  "columns": [
    { "data": "name" },
    { "data": "position" },
    { "data": "office" },
    { "data": "extn" },
    { "data": "start_date" },
    { "data": "salary" }
  ]
});
  1. 按钮点击事件直接调用刷新方法,所有参数会自动携带:
$('button').on('click', function () {
  table.ajax.reload();
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:45:03