【问题标题】:What is the correct syntax for my datatables problem?我的数据表问题的正确语法是什么?
【发布时间】:2019-09-14 22:18:20
【问题描述】:

我有一个在脚本中加载的数据表,如下所示:

<script>
        function table() {
            $.ajax({
                url: 'tables/winnertable-all.php',
                type: 'get',
                data: { name: '<?php echo $name ?>', Type: '<?php echo $Type ?>'  },
                success: function(response){
                    $('.winnertable').html(response);
                    $('#newtable').DataTable();
                }
            });
        }
                                table();
        setInterval(table, 3600000);

                                table();
        setInterval(table, 3600000);
$(document).ready(function() {
    $('#newtable').DataTable();
} );
    </script>

我想将默认排序添加到第一列,我在数据表网站上找到了以下代码作为示例:

$(document).ready(function() {
    $('#example').DataTable( {
        "order": [[ 3, "desc" ]]
    } );
} );

我想在我的代码中实现这一点,但是在添加行后我无法加载表格。 我试过了:

<script>
        function table() {
            $.ajax({
                url: 'tables/winnertable-all.php',
                type: 'get',
                data: { name: '<?php echo $name ?>', Type: '<?php echo $Type ?>'  },
                success: function(response){
                    $('.winnertable').html(response);
                    $('#newtable').DataTable();
                    "order": [[ 1, "desc" ]];

                }
            });
        }
                                table();
        setInterval(table, 3600000);

                                table();
        setInterval(table, 3600000);
$(document).ready(function() {
    $('#newtable').DataTable();
    "order": [[ 1, "desc" ]];
} );
    </script>

我知道它们是我的语法实现的问题,但是我尝试了各种不同的方法,但无法让它发挥作用。

【问题讨论】:

  • 您的代码与示例不匹配。该示例在括号内有一个对象 -- DataTable( { "order": [[ 3, "desc" ]] } ); 您的“订单”行甚至不在括号中。除此之外,我不知道是否有任何数据,但该修复的排序应该没问题。还可以格式化您的代码;很难说到底发生了什么;由于某种原因重复了 2 行。
  • 您能分享您在控制台中看到的任何错误吗?

标签: javascript jquery ajax datatables


【解决方案1】:

一般来说,如果您想重新初始化 DataTable 以更改其基本设置,则需要使用 destroy 标志。

但是,在您的情况下,我只需将所需的 order-settings 添加到默认值

$.extend( true, $.fn.dataTable.defaults, {
  order: [[ 3, "desc" ]]
})

如果您预先执行此操作,则在页面加载时,所有表都将默认使用 order: [[ 3, "desc" ]]。如果您出于某种原因不想更改默认值,您可以简单地利用 API,这个惊喜有一个 order 方法

var table = $('#newtable').DataTable()
table.order( [[ 3, "desc" ]] ).draw()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2018-11-14
    相关资源
    最近更新 更多