【问题标题】:Variable value has not changed in Ajax.reload datatableAjax.reload 数据表中的变量值没有改变
【发布时间】:2018-05-24 02:31:00
【问题描述】:

我的代码有问题。我无法更改数据表中的 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 年获取值,它保留了 @ 987654327@ 值。

有人可以帮助我吗?如果我的英语不好,对不起。

【问题讨论】:

  • 你的select方法是如何实现的?
  • 它改变了 var year 的值,因为我在一个函数中使用它。
  • 函数重定向(obj){ var yearO = obj.value;年=年O; reload_january_table(); reload_january_total_invoice(); }

标签: javascript php jquery ajax datatable


【解决方案1】:

问题在于 ajax.url 仅在表初始化时才被评估,因此您的 year 变量的第一个值被“烧毁”到 url。

解决方法是在 year 的值发生变化时为 DataTables 设置新的 url,如下所示:

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();
}

【讨论】:

    猜你喜欢
    • 2014-12-02
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 2018-01-20
    • 2023-01-30
    • 2013-07-13
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多