tableSorter限制(排序)一次一页?

时间:2010-05-13 15:20:00

标签: jquery tablesorter

我在tableSorter中看到你可以一次对一页进行排序。

一次只能对1页结果进行排序?这是非常有限的。如果您的查询结果跨越多个页面,您将如何处理?

如果有人知道的话,如果我不正确,请随时纠正我

感谢。

2 个答案:

答案 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']]))

然后通过将所有结果放在一个数组中然后:

将它全部输出为JSON
echo 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”排序表的顶部。
我觉得它很有用。

享受¯\ _(ツ)_ /¯