在tableheader点击上升序和降序表行之间的切换

时间:2015-07-02 08:18:23

标签: php sorting

我一直在搞这个问题很长一段时间了,但我无法让它发挥作用。我想要做的是;

一个可点击的表格标题,一旦点击就会将行顺序从上升切换为下降,再次单击时将其切换回来。

到目前为止我做的尝试没有循环,一次点击就卡住了。

1 个答案:

答案 0 :(得分:2)

只需添加一个包含参数的表头单元格的链接,例如

<tr><th>
   <a href="currentpage.php?order=<?php echo isset($_GET['order'])?!$_GET['order']:1; ?>">
      Name
   </a>
</th></tr>

这里发生了什么?将添加一个链接,其中包含order参数,该参数设置为与当前order值(1 / true或0 / false)相反或默认为1。

在PHP脚本中,您现在可以决定如何使用order值来订购表格:

$isAsc = isset($_GET['order'])? (bool) $_GET['order']: 1;

现在您可以使用$isAsc布尔值:

if ($isAsc) {
   // Sort data ascending
} else {
   // Sort data descending
}

或在查询中:

$sql = "SELECT * FROM tabe ORDER BY name ".($isAsc?"ASC":"DESC").";";

当然,您可以扩展这个想法,例如,通过添加列名来按几列排序。