我正在使用DataTables 1.10.15并已阅读有关如何在ajax调用中指定data
属性的内容,如下所示:
$(document).ready(function() { var MyTable = $('#example').DataTable( { "processing": true, "serverSide": true, "ajax": { "url": "scripts/server_processing.php", "data": function ( d ) { d.myKey = "myValue"; // d.custom = $('#myInput').val(); // etc } } } ); } );
但是,此示例只具有硬编码值(或形成输入值,如$('#myInput').val()
)。
我有一个应用程序,我需要能够传递各种不同的数据对象,然后运行ajax调用。
我无法看到这是如何可能的,并查看了以下https://datatables.net/examples/server_side/custom_vars.html 。
我想这样做的原因是因为我正在构建一个具有多种不同forms的应用程序。 我需要选择要作为数据发送的表单 ! 当用户以特定forms输入术语时,我想将表单数据传递给我的ajax脚本,然后让DataTables重绘表格(我可以使用.draw()
方法):
MyTable.draw();
但是,我不明白如何动态指定data:
。 我可以在ajax调用中做这样的事情:
"ajax": { "url" : "scripts/server_processing.php", "data" : function ( d ) { d.primarySearch = $('#form1').serialize(), d.secondSearch = $('#form2').serialize(), d.thirdSearch = $('#form3').serialize(), } }
但是,如果我正在进行搜索的数据是#form1
,我只想传递那些数据,而不是来自#form2
和#form3
的数据。 但由于每次都有所不同,我需要能够说出哪些表单传递给data:
object。
我也在使用服务器端处理。 您可以按以下代码调用它:
这是针对静态表单id
ajax: { "url": 'api/v1/datatable/' + method, "type": "POST", "data": jQuery('#frmid').serialize(), },
这是动态表单ID
var form_id = 'form1' ; $(document).ready(function() { var MyTable = $('#example').DataTable( { "processing": true, "serverSide": true, "ajax": { "url": "scripts/server_processing.php", "data": jQuery('#' + form_id).serialize(), } } ); } ); $(document).on('keyup','.search_text',function(){ form_id = $(this).closest('form').attr('id'); MyTable.draw(); })
希望这对你有所帮助。
如果您只需要在代码中稍后更改数据表的ajax初始URL,则可以使用:
tbl.ajax.url("new url");
API文档
以上就是jQuery教程分享如何在DataTables中动态设置ajax数据?相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/557737.html