JSFiddle - React, Tailwind, and code Playground
HTML
<table id="table-list-test" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th rowspan="2">Bank Name</th>
<th colspan="5" style="text-align: center">Days to Facility Maturity</th>
<th rowspan="2" style="text-align: center">Total</th>
</tr>
<tr>
<th style="text-align: center"><= 7 Days</th>
<th style="text-align: center">> 7-14 Days</th>
<th style="text-align: center">> 14-30 Days</th>
<th style="text-align: center">> 1-2 Month</th>
<th style="text-align: center">> 2-3 Month</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bank BCA</td>
<td>1000</td>
<td>2000</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Bank BNI</td>
<td>0</td>
<td>2000</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Bank HSBC</td>
<td>0</td>
<td>2000</td>
<td>0</td>
<td>3000</td>
<td>0</td>
</tr>
<tr>
<td>Bank BRI</td>
<td>1000</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>4500</td>
</tr>
<tr>
<td>Bank Panin</td>
<td>1000</td>
<td>2000</td>
<td>0</td>
<td>0</td>
<td>2300</td>
</tr>
<tr>
<td>Bank DBS</td>
<td>1000</td>
<td>2000</td>
<td>0</td>
<td>25000</td>
<td>0</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>TOTAL FACILITY : </th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
</table>
CSS
<style type="text/css">
.myClass{ text-align: right; }
</style>
JavaScript
jQuery(function ($) {
var oTable1 = $('#table-list-test')
.dataTable(
{
bAutoWidth: false,
"sAjaxSource": "<?php echo site_url();?>/datas/showMoneyMarket_tenorplf",
"sAjaxDataProp": "TabelMM03",
"aoColumns": [
{ "mData":"counterparty" },
{ "mData":"range1", "sClass": "myClass", "sType":"numeric" },
{ "mData":"range2", "sClass": "myClass", "sType":"numeric" },
{ "mData":"range3", "sClass": "myClass", "sType":"numeric" },
{ "mData":"range4", "sClass": "myClass", "sType":"numeric" },
{ "mData":"range5", "sClass": "myClass", "sType":"numeric" },
{
"sClass": "myClass",
"mRender" : function(data, type, row)
{
return row.range1 + row.range2;
}
}],
"fnFooterCallback" : 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
total = api
.column(1)
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
} );
// Total over this page
pageTotal = api
.column(1, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
...