taTableExt.oApi.fnReloadAjax = function(oSettings, sNewSource, fnCallback, bStandingRedraw) { if (sNewSource !== undefined && sNewSource !== null) { oSettings.sAjaxSource = sNewSource; } // Server-side processing should just call fnDraw if (oSettings.oFeatures.bServerSide) { this.fnDraw(); return; } this.oApi._fnProcessingDisplay(oSettings, true); var that = this; var iStart = oSettings._iDisplayStart; var aData = []; this.oApi._fnServerParams(oSettings, aData); oSettings.fnServerData.call(oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) { /* Clear the old information from the table */ that.oApi._fnClearTable(oSettings); /* Got the data - add it to the table */ var aData = (oSettings.sAjaxDataProp !== "") ? that.oApi._fnGetObjectDataFn(oSettings.sAjaxDataProp)(json) : json; for (var i = 0; i < aData.length; i++) { that.oApi._fnAddData(oSettings, aData[i]); } oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); that.fnDraw(); if (bStandingRedraw === true) { oSettings._iDisplayStart = iStart; that.oApi._fnCalculateEnd(oSettings); that.fnDraw(false); } that.oApi._fnProcessingDisplay(oSettings, false); /* Callback user function - for event handlers etc */ if (typeof fnCallback == 'function' && fnCallback !== null) { fnCallback(oSettings); } }, oSettings); };
$(document).ready(function() { $('#reloadDataBtn').click(function() { otable.fnReloadAjax('mySource2.php'); }); otable=$("#myTable").dataTable({ bSort: true, "bProcessing": true, "sAjaxSource": 'mySource1.php', bAutoWidth: true, "iDisplayLength": 5, "aLengthMenu": [5, 10, 25, 50, 100], "sPaginationType": "full_numbers", "aoColumnDefs": [{ "bSortable": false, "aTargets": [-1, 0]}] }); });