如何将相同的请求或捕获响应传递给变量?
How to pass the same request or catch response to variable?
是否有可能在重新加载 table 时捕获来自 DataTables 的响应,或者是否有可能传递由 DataTables 请求传递的所有数据(我的意思是过滤器)具有自己的功能?
我需要 SQL SSP class 构建的查询,然后在我自己的函数中使用它。我想用过滤后的数据做点什么,但我需要的数据比 table.
中的数据多得多
我想到了这样的事情:
var myData = table.ajax("myFileWithModifiedSSP.php").load();
在这种情况下,它会传递所有参数,比如刷新 table,但最后它会 return 其他东西而不是刷新数据表。
我的第二个想法是仅将带有 ajax 的参数发送到我的文件并执行我需要的操作。像这样:
function myFuncton(){
$.ajax({
url : "myURL.php",
data : DATATABLES_PARAMETERS,
success : function(data){
//do what I need
}
});
}
编辑
我之前没有提到我已经初始化了table,添加了一些自己的过滤器。现在一切正常。
我唯一需要做的就是以某种方式获取 Datatables 脚本发送的所有请求参数,并将它们用于其他用途。
例如,假设我有一个名为 "export" 的按钮,我使用我的过滤器和搜索引擎(来自 DataTables)在我的 table 中过滤数据,然后我将结果放入我的 [=36] =].
下一步是单击 "export",现在我需要之前传递的参数(通过 DataTables)以在其他脚本中使用它们来处理数据。我只需要相同的参数来构建新查询并对数据执行某些操作。
我觉得你需要这样
$('#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 作为 ajax 方法类型。您可以使用 post 或任何您想要的。
可以使用ajax.params(),获取上次Ajax请求中DataTables提交给服务器的数据。
看这个例子:
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()
});
是否有可能在重新加载 table 时捕获来自 DataTables 的响应,或者是否有可能传递由 DataTables 请求传递的所有数据(我的意思是过滤器)具有自己的功能?
我需要 SQL SSP class 构建的查询,然后在我自己的函数中使用它。我想用过滤后的数据做点什么,但我需要的数据比 table.
中的数据多得多我想到了这样的事情:
var myData = table.ajax("myFileWithModifiedSSP.php").load();
在这种情况下,它会传递所有参数,比如刷新 table,但最后它会 return 其他东西而不是刷新数据表。
我的第二个想法是仅将带有 ajax 的参数发送到我的文件并执行我需要的操作。像这样:
function myFuncton(){
$.ajax({
url : "myURL.php",
data : DATATABLES_PARAMETERS,
success : function(data){
//do what I need
}
});
}
编辑
我之前没有提到我已经初始化了table,添加了一些自己的过滤器。现在一切正常。 我唯一需要做的就是以某种方式获取 Datatables 脚本发送的所有请求参数,并将它们用于其他用途。
例如,假设我有一个名为 "export" 的按钮,我使用我的过滤器和搜索引擎(来自 DataTables)在我的 table 中过滤数据,然后我将结果放入我的 [=36] =]. 下一步是单击 "export",现在我需要之前传递的参数(通过 DataTables)以在其他脚本中使用它们来处理数据。我只需要相同的参数来构建新查询并对数据执行某些操作。
我觉得你需要这样
$('#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 作为 ajax 方法类型。您可以使用 post 或任何您想要的。
可以使用ajax.params(),获取上次Ajax请求中DataTables提交给服务器的数据。
看这个例子:
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()
});