我在一个页面中有3个数据表。所有代码都相同(相同的colomns,相同的ajax调用,相同的PHP服务器代码),除了我想在每个ajax调用上传递不同的参数。
每个表都有一个不同的data-status属性,这是我需要传递给ajax然后传递给服务器端的这个属性。
<table data-status="4" class="ajax-table table table-hover table-condensed table-striped bootstrap-datatable table-bordered">
<thead>
<tr>
<!-- ... -->
$("#table1").DataTable( {
dom: "<'tableTools'B><''<'col-md-6'l><'col-md-6'f>r>t<''<'col-md-6'i><'col-md-6'p>>",
autoWidth: false,
stateSave: true,
// paging: true,
buttons: [
'copyHtml5',
'excelHtml5',
'csvHtml5',
'pdfHtml5',
{
text: 'Reload',
action: function (e, dt, node, config) {
dt.ajax.reload();
}
}
],
// ...
processing: true,
serverSide: true,
ajax: {
url : "ajaxCalendarFnc.php", // json datasource
type: "POST", // method , by default get
data: function (d) {
d.func = "getReservations";
d.status = $("#table1").attr("data-status");
d.ghostonly = false;
},
我尝试了多种解决方案,例如here:
$('.table.jobs').each(function() {
$('#' + $(this).attr('id')).dataTable({
url: '/my-url',
dataSrc: function (json) {
return json.data
},
data: function(data) {
data.table_id = $table.attr('id');
// gives the same id for all tables
}
});
但是我找不到办法做到这一点。