我想通过单击表格的标题对表格进行排序,我已经在这里找到了如何做到这一点:How to sort rows of HTML table that are called from MySQL
但是我想知道,有没有,通过点击该按钮上的第二次,排序将反转并通过点击第三次恢复正常等等?
答案 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=asc
,sort=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)