Jquery数据表重新加载Ajax

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

我试图使用reloadajax函数,但是当我运行它时,表显示正在处理,什么也没有发生。按钮和所有的东西都在桌子里面工作,只是没有重新加载桌子而卡住了。你知道为什么吗

 <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错误,请参阅更多信息