He escrito las secuencias de comandos del lado del servidor para mostrar una gran cantidad de datos y funciona bien, pero quiero mostrar la suma en el pie de página de la columna de puntos. El código está escrito en un archivo blade laravel.
El pie de página vuelve a llamar a la función, no funciona, me muestra un error, es decir, un objeto de longitud indefinida, hágame saber dónde estoy cometiendo el error.
<table class="table table-bordered yajra-datatable" width="100%" style="color:#8D1B6B;margin-top:20px;"> <thead> <tr> <td><b>Sr No</b></td> <td><b>Date</b></td> <td><b>Activity Name</b></td> <td><b>Activity Marks</b></td> <td><b>My Rewards</b></td> </tr> </thead> <tbody> </tbody> <tfoot> </tfoot> </table>El script escrito para el código anterior es
<script> $(document).ready(function(){ var table = $('.yajra-datatable').DataTable({ processing: true, serverSide: true, ajax: "{{ route('abc') }}", columns: [ {data: 'DT_RowIndex', name: 'DT_RowIndex'}, {data: 'activityDate', name: 'activityDate'}, {data: 'activity', name: 'activity'}, {data: 'point', name: 'point'}, { data: 'action', name: 'action', orderable: true, searchable: true }, ], "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( 3 ).data(); total = data.length ? data.reduce( function (a, b) { return intVal(a) + intVal(b); }) : 0; // Total over this page data = api.column( 3, { page: 'current'} ).data(); pageTotal = data.length ? data.reduce( function (a, b) { return intVal(a) + intVal(b); } ) : 0; // Update footer $( api.column( 3 ).footer() ).html( '$'+pageTotal +' ( $'+ total +' total)' ); } }); }); </script>