【发布时间】:2015-10-11 05:13:29
【问题描述】:
我已经阅读了许多关于如何使用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 上,它显示表中所有记录的总和。搞了两天了,有大神指点一下吗?
【问题讨论】:
-
total和pageTotal是不同的值吗? -
不,都是一样的,但在例子中是不同的-> abagraf.com.br/wp-content/config/DataTables/examples/…
-
那么
apply in my php script是什么意思? -
请发布您的实际 DataTables 初始化代码,因为您提到的示例工作正常。
标签: php jquery mysql datatables