如何将附加参数传递给 jQuery DataTable ajax 调用?
Posted
技术标签:
【中文标题】如何将附加参数传递给 jQuery DataTable ajax 调用?【英文标题】:How do I pass additional parameters to the jQuery DataTable ajax call? 【发布时间】:2016-02-07 21:38:43 【问题描述】:加载 jQuery DataTable 时,我的代码如下所示。如何将附加参数传递给 AJAX 调用?下面问题和答案中建议的 fnServerParams 回调不起作用。也就是说,天真地使用aodata.push()
会导致“push is undefined”(因为实际上,aodata 不是数组)。那么正确的做法是什么?
相关问题:
Datatables serverside. Send extra parameters asynchronously Understanding fnServerData in Datatables代码:
self.dataTable = self.dataTableContainer.DataTable(
"autoWidth": false,
"bSort": false,
"displayStart": 0,
"paging": false,
"lengthChange": false,
"processing": true,
"serverSide": true,
"dom": "<'dataTables_header dashboard_alert_history__alertHeader'i>",
"ajax":
url: getDataUri,
error: onError,
cache: false,
"fnDrawCallback": onTableDrawn,
,
"fnDrawCallback": onTableDrawn,
"language":
"info": resources.alarmHistory,
"infoEmpty": resources.alarmHistory,
"infoFiltered": ''
,
"columns": [
"data": "timestamp",
"mRender": function (data)
return IoTApp.Helpers.Dates.localizeDate(data, 'L LTS');
,
"name": "timestamp"
,
"data": "deviceId",
"mRender": function (data)
return htmlEncode(data);
,
"name": "deviceId"
,
"data": "ruleOutput",
"mRender": function (data)
return htmlEncode(data);
,
"name": "ruleOutput"
,
"data": "value",
"mRender": function (data)
return htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data));
,
"name": "value"
,
],
"columnDefs": [
"targets": [0, 1, 2, 3],
"className": 'table_alertHistory_issueType',
"width": "20%"
],
);
【问题讨论】:
【参考方案1】:我忽略了 RTFM。对于 1.9 及更早版本,fnServerParams
回调现在为 legacy。在最新版本的 DataTables 中,您利用了 ajax 数据参数 as described in the DataTables documentation。在下面的示例中,将 mykey
附加到 d
对象即可:
$(document).ready(function()
$('#example').DataTable(
"processing": true,
"serverSide": true,
"ajax":
"url": "scripts/server_processing.php",
"data": function ( d )
d.myKey = "myValue";
// d.custom = $('#myInput').val();
// etc
);
);
【讨论】:
太棒了!这正是我正在寻找的。谢谢你的好回答! 如何在已经初始化的数据表上执行此操作? @SandeepBalagopal 这对我来说已经很多年了,但我认为这是一个不同的问题。您在问,“加载后如何操作表格?”或者更有可能,您想在数据显示之前捕获 ajax 承诺并对其进行操作。 我想在初始化后将额外的参数传递给 ajax url。发现我必须销毁表并为此重新创建它。 @SandeepBalagopal 我仍在寻找类似问题的答案***.com/questions/67376953/…。如果您有解决方案,请帮助我。以上是关于如何将附加参数传递给 jQuery DataTable ajax 调用?的主要内容,如果未能解决你的问题,请参考以下文章
Apache Tomcat 1.7 如何将附加参数传递给 JAAS