如何重新加载datatable(jquery)数据?

gur*_*gur 18 jquery datatables

如何重新加载选定的标签?实际上我有重装部分的问题.当我添加我的数据时,我将成功保存在datatable中,但在数据库中的id字段中显示正确的id,但是当我添加详细信息时,它不会在datatable中显示id.

(在刷新摘要标签之前)这里是示例,它在数据表id患者丈夫年龄中显示类似这样的东西...........所以......''xyz abc 23 ....... so上...

(手动刷新后)但是当我刷新我的页面时它显示成功..就像在数据表中这样:id患者丈夫年龄...........等等... 13 xyz abc 23 ..... ..等......

但我想在添加细节时自动刷新所选标签.

我的代码如下:

<button type="button"  a href="javascript:void(0);" onclick="fnClickAddRow();">Add Summary</button>

function fnClickAddRow(event) {

$('#table_scroll').dataTable().fnAddData( [

$('#patientt').val(),$('#husband').val(),$('#age').val(),$('#opu_no').val(),$('#date').val(),$('#proc').val(),$('#no_of_eggs').val(),$('#fert').val(),$('#et_date').val(),$('#et_day').val(),$('#et').val(),$('#fz').val(),$('#bioch_preg').val(),$('#clin_preg').val(),$('#fh').val(),$('#comment').val()

]);


var datastring = $(Form_summary).serialize();

$.ajax({
    type: "POST",
    url: "summaryajax.php",
    data: datastring, 
    success: function(response){

 alert(response);

    }
    });
Run Code Online (Sandbox Code Playgroud)

我也厌倦了这种方法但没有成功.

我希望我的数据表刷新数据

function fnClickAddRow(event) {

var datastring = $(Form_summary).serialize();

$.ajax({
    type: "POST",
    url: "summaryajax.php",
    data: datastring, 
    success: function(response){
       $('#table_scroll').dataTable().fnAddData( 
          [resposne, $('#patientt').val(), $('#husband').val(),$('#age').val(),
            $('#opu_no').val(), $('#date').val(),$('#proc').val(), $('#no_of_eggs').val(), 
            $('#fert').val(),$('#et_date').val(), $('#et_day').val(), $('#et').val(), 
            $('#fz').val(), $('#bioch_preg').val(), $('#clin_preg').val(), $('#fh').val(), 
            $('#comment').val() ]);
    }
});
Run Code Online (Sandbox Code Playgroud)

小智 27

你可以用一个简单的方法......

$('YourDataTableID').dataTable()._fnAjaxUpdate();
Run Code Online (Sandbox Code Playgroud)

它将通过使用相同参数发出ajax请求来刷新数据.非常简单.

  • 伙计,你是一个重要的救星!这对我来说非常有效。+100 (2认同)

Edg*_*ado 19

你可以使用这个功能:

function RefreshTable(tableId, urlData)
    {
      //Retrieve the new data with $.getJSON. You could use it ajax too
      $.getJSON(urlData, null, function( json )
      {
        table = $(tableId).dataTable();
        oSettings = table.fnSettings();

        table.fnClearTable(this);

        for (var i=0; i<json.aaData.length; i++)
        {
          table.oApi._fnAddData(oSettings, json.aaData[i]);
        }

        oSettings.aiDisplay = oSettings.aiDisplayMaster.slice();
        table.fnDraw();
      });
    }
Run Code Online (Sandbox Code Playgroud)

不要忘记删除功能成功调用它.

资料来源:http://www.meadow.se/wordpress/? p = 536


Ale*_*ber 13

使用DataTables.net作者提供的fnReloadAjax().

我正在复制下面的源代码 - 以防原始版本移动:

$.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
{
    if ( typeof sNewSource != 'undefined' && sNewSource != null )
    {
        oSettings.sAjaxSource = sNewSource;
    }
    this.oApi._fnProcessingDisplay( oSettings, true );
    var that = this;
    var iStart = oSettings._iDisplayStart;
    var aData = [];

    this.oApi._fnServerParams( oSettings, aData );

    oSettings.fnServerData( 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 ( typeof bStandingRedraw != 'undefined' && bStandingRedraw === true )
        {
            oSettings._iDisplayStart = iStart;
            that.fnDraw( false );
        }

        that.oApi._fnProcessingDisplay( oSettings, false );

        /* Callback user function - for event handlers etc */
        if ( typeof fnCallback == 'function' && fnCallback != null )
        {
            fnCallback( oSettings );
        }
    }, oSettings );
}

/* Example call to load a new file */
oTable.fnReloadAjax( 'media/examples_support/json_source2.txt' );

/* Example call to reload from original file */
oTable.fnReloadAjax();
Run Code Online (Sandbox Code Playgroud)

  • fnReloadAjax()工作得很好.我没有找到任何解决方案.它保留所有活动的过滤器和排序.刚刚好. (2认同)

Onu*_*rım 7

更简单的解决方案

var dt = $('#table_scroll').dataTable();

$.getJSON(url, null, function (json) {
    dt.fnClearTable();
    dt.fnAddData(json.aaData);
    dt.fnDraw();
});
Run Code Online (Sandbox Code Playgroud)


Mas*_*ref 6

如果有什么作品!做这个:

例:

<div id="tabledisplay"><table class="display" id="table"></table><table </div>
Run Code Online (Sandbox Code Playgroud)

如何重新加载表格:

$('#tabledisplay').empty();
$('#tabledisplay').append("<table class=\"display\" id=\"table\"></table>");
initTable( "tablename");  
Run Code Online (Sandbox Code Playgroud)

initTable只是一个用getJSON初始化Table的方法.