【发布时间】:2021-10-05 08:48:13
【问题描述】:
我正在尝试使用 dataTables 编写一个脚本,该脚本在循环中显示多行数据。 我的脚本除了部分工作之外,我需要在显示最后一行数据后执行 ajax 调用。 我曾尝试在循环结束时使用 table.ajax.reload() 但这只会导致第一页显示。
谁能指出我正确的方向。
var airlineimage = '../../';
var pageInfo;
var pageLength;
var endInt;
var currentInt;
$(document).ready( function () {
table = $('#fidsTable').DataTable( {
ajax: {
url: 'get_fids.php',
dataSrc: '',
},
pageLength: 5,
responsive: true,
ordering: false,
autoWidth: false,
paging: true,
searching: false,
orderable: false,
info : false,
dom: '<"top"i>rt><"clear">',
dom: '<"bottom"i>rt<"clear">',
language: {
"emptyTable": "There are no flights for <?php echo $date; ?>"
},
columns: [
{ data: "ScheduleTime", width: '7%'},
{
data: "Image",
width: '20%',
render : function (data, type){
return '<img src="' + airlineimage + '' +data+'" " />';
}
},
{ data: "AirportName", width: '20%'},
{ data: "Temp", width: '20%'},
{ data: "Flight", width: '12%'},
{ data: "RemarksWithTime", width: '11%'},
],
rowCallback: function(row, data){
$('td:eq(1)', row).find("span").css({color: "blue" });
},
// START OF LOOP
initComplete: function(settings, json){
pageInfo = table.page.info(),
endInt = pageInfo.end,
// Current page
currentInt = 0,
interval = setInterval(function(){
table.page( currentInt ).draw( 'page' );
currentInt++;
console.log("CURRENT", currentInt);
console.log("ENDINT", endInt);
if ( currentInt === endInt)
currentInt = 0;
}, 3000); // 3 seconds
} <--- extra closing curly brace ???
// END OF LOOP
});
});
【问题讨论】:
-
所以我尝试重新格式化您的代码以修复缩进,我认为您可能在 initComplete 之后的末尾附近有一个额外的闭合花括号。
-
@mark_b 嗨,我已经检查了代码并且需要大括号。没有它,脚本将无法运行。也就是说,非常感谢您查看该帖子。
标签: ajax datatables