Datatables post 动态提交数据(传参数) 异步数据(ajax.data)

Posted 前端工程师·邢晋宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Datatables post 动态提交数据(传参数) 异步数据(ajax.data)相关的知识,希望对你有一定的参考价值。

官网解释与方法:1 当向服务器发出一个ajax请求,Datatables将会把服务器请求到的数据构造成一个数据对象

2 实际上他是参考jQuery的ajax.data属性来的,他能添加额外的参数传给服务器。

3 Datatables在此基础上还提供了一个函数,以便Datatables在请求服务器的时候可以处理这些数据.

 

闲言少叙,举几个栗子:

注意, 参数格式是必须和例子一样.

自认为最好用的datatables, post动态传参方法:

 

 

 

//初始化表格
var oTable = $("#example").DataTable({
    ajax: {
        url: "http://xingJinYuBlog/index", 
data: { function ( d ) {
                var d ={},
d.xxx=$(‘#extra‘).val();
return JSON.stringify( d );
              } 
              } }); 


//当你需要多条件查询,你可以调用此方法,动态修改参数传给服务器
function reloadTable() {
var name = $("#seName").val();
var admin = $("#seAdmin").val();
var param = { "obj.name": name, "obj.admin": admin };
oTable.settings()[0].ajax.data = param;
oTable.ajax.reload(); }

 

注: 

1 上面的param对象的内容, 对应是d对象的内容.

2 重新渲染表, 执行reloadTable(),即可实现.

 

 

 

下面是其他的方法:

1 添加一个静态值,来提交额外的参数(user_id)

 特点:--post方法, 静态传参

 

$(#example).dataTable( {
  "ajax": {
    "url": "http://xingJinYuBlog/index",
    "data": {
        "user_id": 451
    }
  }
} );

 

 

2 通过操作数据对象添加数据请求(函数没有返回)

特点:--post方法, 动态传参

$(#example).dataTable( {
  "ajax": {
    "url": "http://xingJinYuBlog/index", 
"data": function ( d ) { d.extra_search = $(#extra).val(); } } } );

3 添加数据请求(函数有返回)

特点:--post方法, 动态传参

$(#example).dataTable( {
  "ajax": {
    "url": "http://xingJinYuBlog/index", 
    "data": function ( d ) { return $.extend( {}, d, { "extra_search": $(#extra).val() } ); } } } );

4 以json格式提交

特点:--post方法, 动态传参

$(#example).dataTable( {
  "ajax": {
    "url": "http://xingJinYuBlog/index", 
    "contentType": "application/json",
"data": function ( d ) {
var d ={},
d.xxx=
$(‘#extra‘).val();
    return JSON.stringify( d );
    }
  }
} );

参考文章有官网: 

http://datatables.club/reference/option/ajax.data.html

https://datatables.net/forums/discussion/21940/how-to-pass-new-post-parameters-on-ajax-reload

 

















以上是关于Datatables post 动态提交数据(传参数) 异步数据(ajax.data)的主要内容,如果未能解决你的问题,请参考以下文章

VUE post请求设置为formdata传参

DataTables 分页阻止 $_POST 获取所有复选框值

Retrofit进行post提交json数据

Vue使用axios请求数据,默认post请求传参是json格式,但后台需要formData格式???

SpringCloud中服务消费者接受前台传参问题(报错415)

JPA表单动态传参