PHP URL GET参数如果存在,则替换?
问题描述:
尝试执行高级搜索选项,并对不同选项ASC或DESC进行排序。PHP URL GET参数如果存在,则替换?
例URL:
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
- 因为如果一个人后,它的变化最初设置的网址将是:
&sd=a&sd=d
我确定我以前遇到过这个问题,但不能完全想到我是如何解决它的。
如何检查GET是否已设置(如sd),如果是,请更改它,否则将其添加到URL的末尾,以生成上面显示的链接。
编辑:也许一个屏幕快照将有助于理解: http://dl.dropbox.com/u/10591127/Capture.PNG
干杯, 马特
答
您可以使用$ _GET超全局让每一个人GET变量。如果将它放在数组中,则可以通过重新设置来覆盖任何值:
$params = $_GET;
$params['sd'] = "whateveryoulike";
$paramString = http_build_query($params);
isset($ _ GET ['sd'])? – 2011-02-05 18:22:24
if语句应该完美地工作。使用`isset()`来检查是否设置了一个变量。 – Shoe 2011-02-05 18:23:38