DataTables warning: table id=example - Cannot reinitialise DataTable. , Cant Solve Please help
DataTables warning: table id=example - Cannot reinitialise DataTable. , Cant Solve Please help
<script>
$(document).ready(function() {
$('#portests').on('click',function(){
$('.test').toggle();
});
$('#portests1').on('click',function(){
$('.test1').toggle();
});
$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
{ extend: 'copyHtml5', footer: true },
{ extend: 'excelHtml5', footer: true },
{ extend: 'csvHtml5', footer: true },
{ extend: 'pdfHtml5', footer: true },
{ extend: 'print', footer: 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 this page
pageTotal2 = api
.column( 2, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 2 ).footer() ).html(
'€ '+pageTotal2 // +' ( ₱'+ total + ')' ouput the total of all pages //
);
// Total over this page
pageTotal3 = api
.column( 3, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 3 ).footer() ).html(
'€ '+pageTotal3 // +' ( ₱'+ total + ')' ouput the total of all pages //
);
// Total over this page
pageTotal4 = api
.column( 4, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 4 ).footer() ).html(
'€ '+pageTotal4 // +' ( ₱'+ total + ')' ouput the total of all pages //
);
// Total over this page
pageTotal5 = api
.column( 5, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 5 ).footer() ).html(
'€ '+pageTotal5 // +' ( ₱'+ total + ')' ouput the total of all pages //
);
// Total over this page
pageTotal6 = api
.column( 6, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 6 ).footer() ).html(
'€ '+pageTotal6 // +' ( ₱'+ total + ')' ouput the total of all pages //
);
}
} );
} );
</script>
<link href="tablejs/bootstrap-datepicker3.min.css">
<script src="tablejs/bootstrap-datepicker.js"></script>
<script>
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var iFini = document.getElementById('min').value;
var iFfin = document.getElementById('max').value;
var iStartDateCol = 7;
var iEndDateCol = 7;
iFini=iFini.substring(0,4) + iFini.substring(5,7)+ iFini.substring(8,10);
iFfin=iFfin.substring(0,4) + iFfin.substring(5,7)+ iFfin.substring(8,10);
var datofini=aData[iStartDateCol].substring(0,4) + aData[iStartDateCol].substring(5,7)+ aData[iStartDateCol].substring(8,10);
var datoffin=aData[iEndDateCol].substring(0,4) + aData[iEndDateCol].substring(5,7)+ aData[iEndDateCol].substring(8,10);
if ( iFini === "" && iFfin === "" )
{
return true;
}
else if ( iFini <= datofini && iFfin === "")
{
return true;
}
else if ( iFfin >= datoffin && iFini === "")
{
return true;
}
else if (iFini <= datofini && iFfin >= datoffin)
{
return true;
}
return false;
}
);
</script>
<script>
$(document).ready(function() {
var table = $('#example').DataTable( {
"order": [[ 7, '0' ]],
"dom": 'litp', // https://datatables.net/examples/basic_init/dom.html
} );
// Filter by Start and End Date
var datepicker_options = {
format: "dd-mm-yyyy",
autoclose: true,
clearBtn: true,
endDate: "0d",
todayHighlight: true,
}
$('#min, #max').datepicker(datepicker_options).on('changeDate', function(e) { table.draw(); } );
$('#min, #max').change(function () {
table.draw();
});
} );
</script>
Edited by Colin - Syntax highlighting. Details on how to highlight code using markdown can be found in this guide.
This discussion has been closed.
Answers
As the error says, you're initialising the table twice, with different options - on lines 9 and 134. You need to tweak your code so there's only one
$(document).ready()
and initialise the table once in it.Colin
Yes , I know that . only one $(document).ready() require , but what will be the code ? How I marge it
Please show us your code, assuming you have amended it in accordance with Colin's advice.
See this part of the manual for how to merge options into a single object.
Allan