I have a table which I am using with jquery datatable plugin,Here All my functionalities are working fine but I need to fetch the table data and column header from ajax call and external json. Currently I have used a variable and fetching the data.Below is the separate html,json and script file code has been given. Thanks in advance.
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="script.js"></script>
<table id="example" class="display" cellspacing="0" width="100%"></table>
<script>
var dataSet = [{
"Latitude": 18.00,
"Longitude": 23.00,
"Name": "Pune"
}, {
"Latitude": 14.00,
"Longitude": 24.00,
"Name": "Mumbai"
}, {
"Latitude": 34.004654,
"Longitude": -4.005465,
"Name": "Delhi"
}, {
"Latitude": 23.004564,
"Longitude": 23.007897,
"Name": "Jaipur"
}];
var my_columns = [];
$.each(dataSet[0], function(key, value) {
var my_item = {};
my_item.data = key;
my_item.title = key;
my_columns.push(my_item);
});
$(document).ready(function() {
var tables = $('#example').DataTable({
"columnDefs": [{
"targets": 0,
"createdCell": function(td, cellData, rowData, row, col) {
if ((cellData > 3) && (cellData < 15)) {
$(td).css('color', 'green')
} else
if ((cellData > 16) && (cellData < 20)) {
$(td).css('color', 'orange')
} else
if ((cellData > 21) && (cellData < 35)) {
$(td).css('color', 'red')
}
}
}],
dom: 'l<"#add">frtip',
"language": {
"paginate": {
"previous": "< Previous",
"next": "next >"
}
},
data: dataSet,
"columns": my_columns
})
$('<label/>').text('Search Column:').appendTo('#add')
$select = $('<select/>').appendTo('#add')
$('<option/>').val('All').text('All').appendTo($select);
$('<option/>').val('0').text('Long').appendTo($select);
$('<option/>').val('1').text('Lat').appendTo($select);
$('<option/>').val('2').text('Name').appendTo($select);
$('input[type="search"]').on('keyup change recheck', function() {
var searchValue = $(this).val();
var columnSearch = $select.val();
$('#example').DataTable().columns().every(function() {
//alert('hi');
this.search('');
});
if (columnSearch == 'All') {
tables.search(searchValue).draw();
} else {
tables.columns(columnSearch).search(searchValue).draw();
}
});
$select.on('change', function() {
$('#example').DataTable().search('').draw();
$('input[type="search"]').trigger('recheck');
});
});
</script>