【问题标题】:Server side sorted data not showing in same order in Datatables服务器端排序的数据在数据表中没有以相同的顺序显示
【发布时间】:2018-12-07 02:39:10
【问题描述】:

我正在使用数据表来显示数据库中的数据。我正在使用 CodeIgniter 进行服务器端脚本。这是表格图片

在我的服务器端编码中,我按国家和降序查询我的数据库顺序。

我已检查 CodeIgniter 选择查询以进行调试,即

$this->db->get_compiled_select()

它正在显示

'SELECT *
FROM `tmp`
ORDER BY `country` DESC'

这里 tmp 是我的数据库名称,它运行良好。

这是我从数据库中获取的 json 响应——(由于文本很长,我无法向您展示整个 JSON 响应。这就是为什么我使用一些在线 json 解析站点来汇总我的数据的原因。)

我的 json 响应根据对数据库的查询显示数据,即按 desc 顺序显示国家/地区列。这就是为什么第一个对象显示 "Zimbabwe"。但在数据表中,它显示的是其他数据,即 “Andora”

这是我的 javascript -

    <script type="text/javascript">
        $(document).ready( function () {
            $('#myTable').DataTable( {
                "responsive": true,
                "processing": true,
                "serverSide": true,
                "ajax": {
                    "url":  "http://localhost/adminDemo/admin/test",
                    "type": "POST"
                },
                "columnDefs" : [
                    {"width" : "20%", "targets" : 7},
                    {"width" : "30%", "targets" : 5},
                    { "orderable": false, "targets": 7 } //Don't order the action column
                ]
            } );
        } );
    </script>

如果我在datatables参数中设置了"order": [[ 6, "desc" ]],那么在得到json响应后会进行排序。我不想添加客户端脚本来订购一列。我只想在数据表中使用排序的 json 响应。谁能帮我解决这个问题?

【问题讨论】:

  • 只需将orderable 设置为false 否则数据将按照datatable 本身定义的默认顺序显示
  • 如果我将 orderable 设置为 false,那么在获得 json 响应后我无法对列进行排序。
  • 所以最好使用数据表排序而不是服务器端排序
  • 这就是为什么我要问有没有办法像对数据表一样处理 json 响应?如果我设置 "ordering": false 那么它会根据 json 响应显示,但问题是我无法手动排序。希望你理解兄弟。
  • 可能对每个单独的列进行排序对您有所帮助,请参阅:datatables.net/examples/basic_init/multi_col_sort.html

标签: json codeigniter datatables


【解决方案1】:

解决该问题的一个简单方法是,只需为 order 选项指定空的 []

$('#example').DataTable( {
    "order": []
} );

DataTables 在初始化期间没有应用排序。行按 DataTables 读取的顺序显示(即,如果来自 DOM,则为来自 DOM 的原始顺序,如果来自 Ajax/数据,则为数据数组):

来源:DataTable:Order

【讨论】:

  • 是的,默认情况下数据表采用第一列对整个数据进行排序。通过这种方式,最初,我们可以根据 json 顺序显示数据。感谢您的信息。
猜你喜欢
  • 2021-04-05
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
相关资源
最近更新 更多