我的代码中存在问题。我无法更改数据表中的year
值
此代码获取实际年份:
var yearDate = new Date();
var year = yearDate.getFullYear();
我的数据表方法:
$(document).ready(function() {
januaryTable = $('#january').DataTable({
"processing": true,
"serverSide": true,
"order": [],
"ajax": {
"url": "<?php echo site_url('gastos/ajax_list/')?>" + year+'-01-01' +'/'+ year+'-01-31',
"type": "POST",
},
"columnDefs": [
{
"targets": [ -1 ],
"orderable": false,
},
],
});
}
此代码重新加载我的数据表
function reload_january_table()
{
januaryTable.ajax.reload(null,false);
}
我使用select方法更改var year
并调用函数reload_january_table(),但是例如,当我选择值2016
时,表格不会从2016获取值,它保留2017
值。
有人能帮助我吗?如果不好的话,抱歉我的英语。
答案 0 :(得分:1)
问题是ajax.url
仅在初始化表时被评估,因此年变量的第一个值被“烧”到网址。
解决方案是在年度值变化时设置DataTables的新网址:
dataTable.ajax.url('NEW_URL').load();
您可以在ajax.url()
下找到DataTables文档的相关部分。
在您的特定情况下,您可以将year的新值作为参数传递到reload_january_table(year)
函数调用中,并使该函数使用如下所示。
function reload_january_table(year) {
var newUrl = "<?php echo site_url('gastos/ajax_list/')?>" + year + '-01-01' + '/' + year + '-01-31';
januaryTable.ajax.url(newUrl).load();
}