使用单击和另一次单击排序的PHP排序表反向排序

时间:2011-07-22 15:59:38

标签: php postgresql sorting

我想通过单击表格的标题对表格进行排序,我已经在这里找到了如何做到这一点:How to sort rows of HTML table that are called from MySQL

但是我想知道,有没有,通过点击该按钮上的第二次,排序将反转并通过点击第三次恢复正常等等?

6 个答案:

答案 0 :(得分:3)

这可以这样做:

switch($_GET['dir']){

  case "asc":
    $orderBy = " ORDER BY colName ASC"
    break;

  case "desc":
    $orderBy = " ORDER BY colName DESC"
    break;

  default:
    $orderBy = " ORDER BY colName ASC"
    break;
}

$sql = "SELECT FieldNames from MyTable" . $orderBy;

然后,您只需提供一个包含查询字符串的链接,每次更改dir项。所以你的链接将成为:

<a href="myFile.php?dir=asc">Order ascending</a> 

<a href="myFile.php?dir=desc">Order descending</a>

希望这有帮助。

答案 1 :(得分:2)

您可以通过在网址sort=ascsort=desc中发送属性来执行此操作。在php中:if($_GET['sort']='asc')排序必须是desc。其他排序必须为asc

www.example.com?sort=asc

答案 2 :(得分:2)

好吧,如果您只想对表进行排序,那么您不必重新加载页面(可能相对较慢) - 可以选择使用JavaScript在客户端进行,即SortTable by Stuart Langridge

答案 3 :(得分:1)

考虑使用DataTables,它非常方便。

答案 4 :(得分:0)

最好的方法是使用JS链接更改标题中的锚点:

if(/* current sorting is asc */) {
  document.write("<p>Type".link("mypage.php?sort=desc") + "</p>");
}else if(/* current sorting is desc */) {
  document.write("<p>Type".link("mypage.php?sort=normal") + "</p>");
}else if(/* current sorting is normal */){
  document.write("<p>Type".link("mypage.php?sort=asc") + "</p>");

PHP代码将与上一个问题保持一致。您在SO。

询问

答案 5 :(得分:0)

正是你想要的,就在这里

https://stackoverflow.com/a/15827728/2220389

第一次点击,您的表格将按升序排序,再点击一次 - 降序。