php - 使用过滤器时如何对所有行求和

标签 php jquery mysql datatables

我已经阅读了许多有关如何使用 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 脚本中应用时,当我的每页记录过滤器设置为 10 时,total 给了我相同数量的 pageTotal,如果我更改为 50,它会给我一个新的总计,但是在示例中,当过滤器位于 10,它显示表中所有记录的总和。我已经研究了两天了,有人可以给我提示吗?

最佳答案

本页总计

    data = api.column( 4, {filter:'applied'} ).data();
    pageTotal = data.length ?
        data.reduce( function (a, b) {
                return intVal(a) + intVal(b);
        } ) :
        0;

关于php - 使用过滤器时如何对所有行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544314/

相关文章:

php - opendir 和 readdir 返回 utf8

jquery - 在 jquery click 事件第一次获得值但第二次它变为空时

mysql - Magento 错误 SQLSTATE [23000] : 1062 Duplicate entry log_visitor_info

jQuery.Cycle 在第一次加载时显示小图像

c# - 无法连接本地mysql数据库

mysql - 在 php 5.3 中使用旧的 MYSQL 密码

php - Laravel 部署您的要求无法解决为一组可安装的包

javascript - 将 JavaScript 传递给 Session 变量

php - 无法发布到 mysql 变量添加的行

jquery - 如何删除 d : from json response through c#?