【问题标题】:How do I prevent data from resetting upon clicking anchor tag如何在单击锚标记时防止数据重置
【发布时间】:2021-05-29 00:40:59
【问题描述】:

对于学校的几个朋友,我必须创建一个网站,其中 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>

如果我对任何事情的解释不佳和/或如果这是一件非常简单的事情,我深表歉意,我们只是无法弄清楚要在 Google 上寻找什么。如果唯一的方法是使用PHP,那么我们可以弄清楚,如果没有,请告诉我如何正确地做到这一点。

谢谢

【问题讨论】:

  • "...我们只需要编写 PHP 代码,根据是否已经设置数据来更改锚标记中的链接..." -正是这个。

标签: php html url get


【解决方案1】:

$_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>

【讨论】:

  • 感谢您的帮助,这已经解决了我的问题。
猜你喜欢
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
相关资源
最近更新 更多