Jquery数据表重新加载Ajax
我试图使用reloadajax函数,但是当我运行它时,表显示正在处理,什么也没有发生。按钮和所有的东西都在桌子里面工作,只是没有重新加载桌子而卡住了。你知道为什么吗Jquery数据表重新加载Ajax,jquery,datatables,jquery-datatables,Jquery,Datatables,Jquery Datatables,我试图使用reloadajax函数,但是当我运行它时,表显示正在处理,什么也没有发生。按钮和所有的东西都在桌子里面工作,只是没有重新加载桌子而卡住了。你知道为什么吗 <script type="text/javascript"> $.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw ) { // DataTables 1.10 c
<script type="text/javascript">
$.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
{
// DataTables 1.10 compatibility - if 1.10 then versionCheck exists.
// 1.10s API has ajax reloading built in, so we use those abilities
// directly.
if ( $.fn.dataTable.versionCheck ) {
var api = new $.fn.dataTable.Api( oSettings );
if ( sNewSource ) {
api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw );
}
else {
api.ajax.reload( fnCallback, !bStandingRedraw );
}
return;
}
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() {
$('#example').dataTable( {
"bProcessing": true,
"sAjaxSource": 'test2.php',
"bJQueryUI": true,
"bPaginate": true,
"sScrollX": "",
"bSortClasses": false,
"aaSorting": [[0,'asc']],
"bAutoWidth": true,
"bInfo": true,
"sScrollY": "100%",
"sScrollX": "100%",
"bScrollCollapse": true,
"sPaginationType": "full_numbers"
});
//Non registered checkouts
$(document).on('click', '.checkinNoReg', function() {
var id_of_item_to_approve = $(this).attr("id");
$.ajax({
url: "test3.php",
type: "POST",
data: "eventid=<?PHP echo $eventId;?>" + "&id=" + id_of_item_to_approve,
success: function(){
$('#example').dataTable().fnReloadAjax();
},
error:function(){
alert("Fail");
}
});
});
} );
</script>
$.fn.dataTableExt.oApi.fnReloadAjax=函数(oSettings、sNewSource、fnCallback、bStandingRedraw)
{
//DataTables 1.10兼容性-如果为1.10,则存在versionCheck。
//1.10s API内置了ajax重新加载功能,因此我们使用了这些功能
//直接的。
如果($.fn.dataTable.versionCheck){
var api=新的$.fn.dataTable.api(oSettings);
if(sNewSource){
加载(fnCallback,!bStandingRedraw);
}
否则{
重载(fnCallback,!bstandinredraw);
}
返回;
}
if(sNewSource!==未定义&&sNewSource!==空){
oSettings.sAjaxSource=sNewSource;
}
//服务器端处理应该只调用fnDraw
if(oSettings.oFeatures.bServerSide){
这个.fnDraw();
返回;
}
这个.oApi.\u fn处理显示(oSettings,true);
var=这个;
var iStart=OSETings._i显示开始;
变量aData=[];
this.oApi.\u fnServerParams(oSettings,aData);
调用(oSettings.oInstance、oSettings.sAjaxSource、aData、函数(json){
/*从表中清除旧信息*/
即.oApi.\u fnClearTable(oSettings);
/*获取数据-将其添加到表中*/
变量aData=(oSettings.sAjaxDataProp!==“”)?
that.oApi.fnGetObjectDataFn(oSettings.sAjaxDataProp)(json):json;
对于(var i=0;i,ajax调用是否正确地发送请求和接收响应
检查控制台以确保接收到响应并且在处理过程中没有抛出错误,或者尝试单独执行ajax调用
这一直是我遇到的问题,处理消息一直在等待它从未得到的响应,而不是设置数据表的方式的问题
您必须确保没有发生意外的ajax错误,请参阅更多信息