单击锚标记时如何防止数据重置

问题描述

对于学校,我和几个朋友必须制作一个网站,其中 PHP 脚本从带有 $_GET 变量的 URL 中获取数据。

我们可以从 URL 中检索数据,例如:index.PHP?data=set

这是我不确定如何制作的部分。我们希望在单击锚标记时设置此数据,例如: <a href="?sortby=rating">rating</a> 并且希望能够在不清除前一个标签中的数据的情况下使用另一个标记设置更多数据,因此 url 可以变成类似:index.PHP?data=set&sortby=rating

我们都觉得用纯 html 可以很容易地做到这一点,但我们一直无法找到如何做到这一点。除非我们只需要编写 PHP 代码,根据是否已设置数据来更改锚标记中的链接,然后使用 PHP<a href="?sortby=rating">rating</a> 更改为 <a href="?sortby=rating&data=set">rating</a>

如果我解释得不好和/或如果这是一件非常简单的事情,我们一直无法弄清楚在谷歌上寻找什么,我深表歉意。如果唯一的方法是使用PHP,那么我们可以解决它,如果不是,请告诉我如何正确操作。

谢谢

解决方法

$_REQUEST global 将帮助您检索所有查询数据,然后您必须决定是否: 这是一个新的查询参数,您必须将其添加到您的查询字符串中 或者它是您需要更新的现有参数。

<?php
   function query_stack($query_name,$query_value){
       $filled = "?";
       foreach ($_REQUEST as $param => $value)
          if($param != $query_name) $filled .= "${param}=${value}&";  // it's new key so we add it to our stack
       return $filled."${query_name}=${query_value}"; // we have to update/reassign value of this key
   }
?>


<a href="<?php echo query_stack('sort','stars') ?>"><b>Sort By:</b> Stars</a><hr>
<a href="<?php echo query_stack('sort','date') ?>"><b>Sort By:</b> Date</a><hr>
<a href="<?php echo query_stack('view','asc') ?>"><b>View:</b> Ascending</a><hr>
<a href="<?php echo query_stack('view','des') ?>"><b>View:</b> Descending</a>