【问题标题】:PHP URL GET parameters, if exist, replace?PHP URL GET参数,如果存在,替换?
【发布时间】:2011-02-05 18:18:16
【问题描述】:

尝试进行高级搜索选项,对不同的选项 ASC 或 DESC 进行排序。

示例网址:

search.php?accom_type=x&no_rooms=x&rooms_total=x&prop_area=x&rent_less=&rent_more=&available=&go=Search&sd=a

突出显示的粗体是 &sd(排序方向)选项。前面的变量是通过一个填写好的表格传递的。

现在我有这样的链接..

<a href="<?=$_SERVER['REQUEST_URI']?>&sd=a">ASC</a>|<a href="<?=$_SERVER['REQUEST_URI']?>&sd=d">DESC</a>

这显然是错误的,因为我使用的是REQUEST_URI - 因为如果一个人在初始设置后发生更改,则 URL 将是:

&sd=a&sd=d

我敢肯定我以前遇到过这个问题,但不太清楚我是如何解决的。

如何检查 GET 是否已经设置(例如 sd),如果是,则更改它,否则,将其添加到 URL 的末尾,以生成上面显示的链接。

编辑:也许屏幕截图将有助于理解: http://dl.dropbox.com/u/10591127/Capture.PNG

干杯, 马特

【问题讨论】:

  • if 语句应该可以完美运行。使用isset() 检查是否设置了变量。
  • 替换现有的_GET不会解决问题

标签: php url get


【解决方案1】:

您可以使用 $_GET 超全局变量来获取每个单独的 get 变量。如果你把它放在一个数组中,你可以通过再次设置来覆盖任何值:

$params = $_GET;
$params['sd'] = "whateveryoulike";
$paramString = http_build_query($params);

【讨论】:

  • 非常感谢,但我不完全确定如何执行此操作 - 每个链接都不需要重复吗?我有很多这样的链接... Rent | 可用性
猜你喜欢
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 2021-09-01
  • 1970-01-01
相关资源
最近更新 更多