繁体   English   中英

如何传递相同的请求或捕获对变量的响应?

[英]How to pass the same request or catch response to variable?

重新加载表时是否有可能从DataTables捕获响应,还是有可能通过DataTables请求通过自己的函数传递所有数据(我是指过滤器)?

我需要由SSP类构建的SQL查询,然后在我自己的函数中使用它。 我想对过滤后的数据进行处理,但是我需要的数据比表中的要多得多。

我想到了这样的事情:

var myData = table.ajax("myFileWithModifiedSSP.php").load();

在这种情况下,它将传递所有参数,如刷新表,但最后它将返回其他内容,而不刷新dataTable。

我的第二个想法是只将带有Ajax的参数发送到我的文件,然后执行我需要的操作。 像这样:

function myFuncton(){
  $.ajax({
    url : "myURL.php",
    data : DATATABLES_PARAMETERS,
    success : function(data){
       //do what I need
    }
  });
}

编辑

我之前没有提到初始化表,添加了一些自己的过滤器。 现在一切正常。 我唯一需要做的就是以某种方式获取由Datatables脚本发送的所有请求参数,并将它们用于其他用途。

例如,假设我有一个名为“导出”的按钮,我使用过滤器和搜索引擎(来自DataTables)过滤表中的数据,然后将结果输入到表中。 下一步是单击“导出”,现在我需要先前传递的参数(由DataTables传递)以在其他脚本中使用它们来对数据进行处理。 我只需要相同的参数,即可建立新的查询并对数据进行处理。

您可以使用ajax.params() ,以获取DataTables在上一个Ajax请求中向服务器提交的数据。

请参阅以下示例:

var table = $('#example').DataTable({
    ajax: "data.json",
    serverSide: true
});

table.on('xhr', function () {
    var data = table.ajax.params();
    alert('Search term was: ' + data.search.value);
});

如果将ajax.params()返回的数据用作$.ajax() data属性的值,则可以得到可以提交到不同URL的相同请求,例如:

$.ajax({
   'url': 'script.php',
   'data': $('#example').DataTable().ajax.params()
});

我想你需要这样

$('#datatable_id').dataTable( {
"iDisplayLength": 50,
"ajax": function(data, callback, settings) {
    $.get(url, {
        param1: param1_value,
        param2: param2_value,
    }, function(res) {
        callback({ 
            data: response.data
        });
    });
}});

请注意,我正在使用get as ajax方法类型。 您可以使用发布信息或任何您想使用的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM