当连接时,用参数POST重新加载Ajax Datatable

时间:2018-11-28 09:27:49

标签: ajax datatable

我有这样的数据平衡。

var table = $('#rep-ship-plan');
    var target = table.attr('data-table');
    var fDate = $("#fRange").val();
    var tDate = $("#sRange").val();
    var BuyerCode = $("#Buyer").val();
    var oTable = table.on( 'processing.dt', function ( e, settings, processing ) {
            if (processing) {
                $(this).find('tbody').addClass('load1 csspinner');
            } else{
                $(this).find('tbody').removeClass('load1 csspinner');
            };
        } ).DataTable({
            "bServerSide": true,
            "scrollY": "200px",
            "scrollCollapse": true,
            "paging": false,
            "ajax": {
                "url" : host+"datatables",
                "type": "POST",
                "data" :{
                           target: target
                        }
            },
            "columnDefs": [{
                "targets": [ 0 ],
                "className": "details-control",
            }],
            "fnDrawCallback": function(oSetting) {
              $('.currency').formatCurrency({symbol: ''});
            }
        });

但是我的问题是,当我单击按钮搜索时,我想用数据POST重新加载表。如何将帖子发送到ajax或如何用新的POST数据(输入)重新加载我的ajax ??

注意:如果使用GET来创建较长的URL,而我的服务器无法保存它(我在数据表上有42列),则我使用POST原因

1 个答案:

答案 0 :(得分:0)

将事件侦听器附加到您的搜索按钮

$('#searchButtonId').on('click', function(){});

在数据发布后,将其放入点击回调函数DataTable重新加载方法

datatable.ajax.reload();

类似的东西

$('#searchButtonId').on('click', function () {
        //Grab necessary data and put it into variable 'data'
        $.post('/url/to/script/updating/DataTable/source', {
            data: //your data here
        }, function () {
            //Do your stuff on successfully POSTed data
            //Refresh your DataTable
            datatable.ajax.reload();
        });
    });