我是Jquery的新手,我正在创建一个自定义按钮,以csv格式从db中导出数据,只有选定的行,问题是我不知道如何获取数据的ID,所以基于选中ID,我可以对PHP脚本进行ajax调用以导出所选记录。我怎么能这样做?
代码是,
$('.dataTables-example').DataTable({
pageLength: 25,
"order": [[0, "desc"]],
"stateSave": true,
responsive: true,
dom: '<"html5buttons"B>lTfgitp',
buttons: [
'selectAll',
'selectNone',
{
text: 'Export Selected Rows',
action: function ( e, dt, node, config ) {
console.log(dt.row());
}, exportOptions: {
modifier: {
selected: true
}
}
}
],
select: true,
});
答案 0 :(得分:0)
假设id
是每行的fisrt单元格的文本,在按钮单击时,按类搜索所选行(如果使用DataTables select
插件,则所选行将拥有selected
类:
function onButtonClick() {
var id = $('#myTable')
.find('tbody')
.find('tr.selected')
.find('td')
.eq(0) // Get first cell
.text() // Get the text of cell
.trim(); // Trim the text
// Call your method providing the id
}
我建议初始化DataTable插件,提供如下数据:
<强> HTML 强>
<table id="myTable"></table>
<强>的jQuery 强>
// Your data
var data = [
{ ID: 0, ... },
{ ID: 1, ... },
{ ID: 2, ... },
....
];
// Initialize the plugin
$('#myTable').DataTable({
dom: '...',
data: data,
columns: [
{
data: 'ID',
title: 'ID'
},
...
],
buttons: [...]
});
然后,在按钮单击时,您可以检索所选行的数据,如下所示:
var rowData = $('#myTable').DataTable().rows('.selected').data();
rowData
是一个类似于数组的对象,包含所选行的数据
您可以查看documentation
答案 1 :(得分:0)
您可以在导出按钮单击中执行以下选项。它使用jquery每个函数获取所选tr(具有selected
类)的所有id。
var data = {
'selected_ids': []
};
$('tbody tr.selected').each(function() {
data['selected_ids'][data['selected_ids'].length] = $(this).find('td:eq(0)').html();
});
console.log(data); // var data holds the selected ids. You can pass it in your ajax data as it is.