首页 > 解决方案 > 使用参数 POST 重新加载 Ajax 数据表

问题描述

我有这样的数据。

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,我使用 POST 原因,而我的服务器无法保存它(我在数据表上有 42 列)

标签: ajaxdatatable

解决方案


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

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

并在您的数据发布时放入您的点击回调函数 DataTable reload 方法

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();
        });
    });

推荐阅读