我一直在阅读许多关于如何使用footerCallback
来汇总MySQL表的所有行的jQuery Datatables示例,但是当我每页使用记录时,我可以得到列的总和过滤。在Footer callback example中,他们展示了一个演示,这就是代码:
$(document).ready(function() {
$('#example').dataTable( {
"footerCallback": function ( row, data, start, end, display ) {
var api = this.api(), data;
// Remove the formatting to get integer data for summation
var intVal = function ( i ) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '')*1 :
typeof i === 'number' ?
i : 0;
};
// Total over all pages
data = api.column( 4 ).data();
total = data.length ?
data.reduce( function (a, b) {
return intVal(a) + intVal(b);
} ) :
0;
// Total over this page
data = api.column( 4, { page: 'current'} ).data();
pageTotal = data.length ?
data.reduce( function (a, b) {
return intVal(a) + intVal(b);
} ) :
0;
// Update footer
$( api.column( 4 ).footer() ).html(
'$'+pageTotal +' ( $'+ total +' total)'
);
}
} );
} );
但是当我在我的PHP脚本中应用时,总计给出了相同数量的pageTotal,当我的每页我的记录过滤器为10时,如果我更改为50它会给我一个新的总数,但是在示例中,如何过滤器为10,它显示表中所有记录的总和。我已经在这两天了,请问有人可以给我一个暗示吗?
答案 0 :(得分:0)
此页面上的总计
data = api.column( 4, {filter:'applied'} ).data();
pageTotal = data.length ?
data.reduce( function (a, b) {
return intVal(a) + intVal(b);
} ) :
0;