我想创建一个更改PHP $_GET
变量的链接。例如:
URL: http://site.com/index&variable=hello&anothervariable=dontchangeme
<a href="variable=world">Click me</a>
(after click)
URL: http://site.com/index&variable=world&anothervariable=dontchangeme
我知道你可以这样做只是改变页面(href="1.html"
),但我想在维护已经存在的GET变量的同时做同样的事情。
答案 0 :(得分:7)
$query = array('variable' => 'world') + $_GET;
printf('<a href="index?%s">Click me</a>', http_build_query($query));
见http://php.net/http_build_query。这是易于理解的最小版本。正确地说,您还需要对生成的查询字符串进行HTML转义(因为您将其放入HTML中):
printf('<a href="index?%s">Click me</a>', htmlspecialchars(http_build_query($query)));
答案 1 :(得分:1)
您可以简单地重定向用户更改变量值并使用header()
..
if(isset($_GET['variable'] && $_GET['variable'] == 'hello') {
header('Location: http://site.com/index&variable=world');
exit;
}
答案 2 :(得分:0)
网址中的变量或参数前面带有?
,然后它们由&
分隔。
要获得您想要的内容,请使用以下链接:
<a href="http://site.com/index?variable=world&anothervariable=dontchangeme">Click me</a>
但是这是硬编码的,而不是动态的,你可以动态地改变参数的值,所以我的答案可能不是最好的。
答案 3 :(得分:0)
这应该这样做。
<a href="variable=world <?php foreach ($_GET as $key => $value) {echo '&&'.$key.'='.$value}">Click me</a>