【问题标题】:A switch between ascending and descending table rows on a tableheader click在表格标题单击时在升序和降序表格行之间切换
【发布时间】:2015-09-19 15:55:03
【问题描述】:

我已经搞砸了很长一段时间,但我就是无法让它工作。我想做的是;

一个可点击的表格标题,一旦点击,就会将行顺序从升序切换到降序,再次点击时再返回。

到目前为止我所做的尝试没有循环,并且在单击后卡住了。

【问题讨论】:

  • 这与 PHP 有什么关系?你想在服务器端进行排序吗?如果不是,那么这是一个 JavaScript 问题,应该这样描述。
  • 我投票结束这个问题,因为谷歌有 100 万条php javascript sort html table 的结果
  • 问题是我试图在没有 javascript 的情况下做到这一点。只需一个开关,即可将查询从升序编辑为降序,然后单击返回。

标签: php sorting


【解决方案1】:

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

<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").";";

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

【讨论】:

  • 你好安德烈,你能帮我在这个问题中实现这个概念吗? stackoverflow.com/q/45628071/3446280 谢谢你。但请注意,我的页面已经是.php
  • 嗨罗伯特。 Rudy 已经更新了给定的解决方案,因此它结合了列和排序参数。如果您还有其他问题或给定的解决方案仍然不适合您,请随时提问!
猜你喜欢
  • 1970-01-01
  • 2021-09-28
  • 2012-10-14
  • 2020-06-13
  • 2015-08-27
  • 2015-11-12
  • 1970-01-01
  • 2020-08-06
  • 1970-01-01
相关资源
最近更新 更多