我正在使用数据表来显示数据库中的数据。我正在使用CodeIgniter进行服务器端脚本编写。这是表格图片
在服务器端编码中,我按国家/地区并以降序查询数据库的顺序。
我已检查CodeIgniter选择查询以进行调试,即
$this->db->get_compiled_select()
它显示
'SELECT *
FROM `tmp`
ORDER BY `country` DESC'
这里 tmp 是我的数据库名称,并且运行良好。
这是我从数据库获得的JSON响应-(由于文本太长,我无法向您显示整个JSON响应。这就是为什么我使用一些在线json解析站点来汇总我的数据的原因。)
我的json响应显示按查询顺序对数据库的数据,即按降序排列的国家/地区列。这就是第一个对象显示“津巴布韦” 的原因。但是在数据表中,它显示的是其他数据,即“ 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响应。有人可以帮我吗?
答案 0 :(得分:0)
该问题的一种简单解决方案是,只需为[]
选项指定空的order
。
$('#example').DataTable( {
"order": []
} );
在初始化期间,DataTable不应用任何顺序。按DataTables读取行的顺序显示行(即,如果是DOM源,则是来自DOM的原始顺序;如果是Ajax /数据,则是数据数组):