我试图让我当前的网址更改而不在网址前添加更多信息。例如:
链接:http://www.domain.com/jobs.php?id=1
我有ul li列出链接,根据我选择的哪个链接“r”查询更改了他的值,所以当我选择它时会得到这个结果:
链接:http://www.domain.com/jobs.php?id=1&r=10
但是当我选择另一个选择选项时,例如将查询结果为“20”,而不是只更新值,它会在网址中添加更多信息,如下所示:
链接:http://www.domain.com/jobs.php?id=1&r=10&r=20
而不是成为链接
链接:http://www.domain.com/jobs.php?id=1&r=20
注意: 重要的是我总是使用当前的URL,因为在我的页面中我有很多参数。例如,选择“作业类型”或其他信息而不使用
这是我的代码:
$currentURL = "http://".$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo $currentURL;?>&r=50">50 km</a></li>
<li><a href="<?php echo $currentURL;?>&r=100">100 km</a></li>
<li><a href="<?php echo $currentURL;?>&r=150">150 km</a></li>
</ul>
答案 0 :(得分:2)
这是因为您每次点击新链接时都会显示$ currentURL,其中包含旧信息。
因此,当您第一次点击链接时,您的网址为:
但是,下次您点击下一个链接时,您当前的网址就是上面的网址。
http://www.google.com?test=test
然后,当您再次单击该链接时,当前的URL就是您现在拥有的那个(见上文),所以当您再次单击它并添加另一个参数时,它会保留以前的所有信息 - 变为:< / p>
http://www.google.com?test=test&test=test
要解决此问题,请尝试使用HTTP_HOST - 只获取基本URL地址:
$currentURL = "http://".$_SERVER["HTTP_HOST"];
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo $currentURL;?>?id=1&r=50">50 km</a></li>
<li><a href="<?php echo $currentURL;?>?id=1&r=100">100 km</a></li>
<li><a href="<?php echo $currentURL;?>?id=1&r=150">150 km</a></li>
</ul>
或者你可以在&amp; r的第一个实例上拆分$ currentURL字符串 - 这样,如果需要,id和任何其他变量总是可以不同。
$currentURL = "http://".$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];;
$URLpieces = explode("&r", $currentURL );
echo $currentURL [0]; // will output everything before &r
希望有所帮助!