我在tableSorter中看到你可以一次对一页进行排序。
一次只能对1页结果进行排序?这是非常有限的。如果您的查询结果跨越多个页面,您将如何处理?
如果有人知道的话,如果我不正确,请随时纠正我
感谢。
答案 0 :(得分:2)
我会为表中的th分配一个ID,该表对应于SQL表中的列。
$("table thead th").click(function(){
$.getJSON('ajax/get_results.php',
{sortby: $(this).attr('id')},
function(data) {
$.each(data, function(){
// fill table here
}
});
});
您可以创建一些用于对表进行排序的函数,如果您还没有这样做,也可以使用AJAX更改页面。
然后在后端用SQL
排序"SELECT * FROM table ORDER BY ".$_GET['sortby']
当然,您应该确保sortby,例如使用允许值数组过滤它。我建议创建一个包含允许列排序名称的数组,并使用array_intersect()函数仅过滤掉允许的值,或者只检查
if(isset($allowed_columns[$_GET['sortby']]))
然后通过将所有结果放在一个数组中然后:
将它全部输出为JSONecho json_encode($array_with_results);
我想你想在JSON中输出这样的东西:
{
{col1: 'row1',col2: 'row1',col3: 'row1'},
{col1: 'row2',col2: 'row2',col3: 'row2'},
{col1: 'row3',col2: 'row3',col3: 'row3'}
}
答案 1 :(得分:2)
当我在寻找解决同一问题的方法时,我偶然发现了这篇文章 (我知道这是一个老帖子,但我有一个答案,可以帮助人们遇到同样的问题,甚至是你)
看看this plugin: "tablesorter pager",它可以让你将一个寻呼机放在“tablesorter”排序表的顶部。
我觉得它很有用。
享受¯\ _(ツ)_ /¯