【发布时间】: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