更新当前Url而不添加Url


Update Current Url Without Adding in URL

im试图在不添加更多信息的情况下更改我当前的url。例如:

链接:http://www.domain.com/jobs.php?id=1

我有ul li列出的链接,根据我选择的链接,"r"查询会改变他的值,所以当我选择时,它会得到这样的结果:

链接:http://www.domain.com/jobs.php?id=1&r=10

但是,当我选择另一个选择选项时,例如,将查询链接为"20"的结果,而不是只更新值,它在url中添加了更多信息,如下所示:

链接: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>

这是因为您显示的是$currentURL,每次单击新链接时都会包含旧信息。

因此,当你第一次点击链接时,你的URL是:

http://www.google.com

然而,下次你点击下一个链接时,你当前的网址就是上面的那个。

http://www.google.com?test=test

然后,下次你再次点击链接时,当前的url就是你现在拥有的url(见上文),所以当你再次点击它并添加另一个参数时,它会保留以前的所有信息-变成:

http://www.google.com?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>

或者,您可以在&r-如果需要的话,id和任何其他变量都可能不同。

$currentURL = "http://".$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];;
$URLpieces = explode("&r", $currentURL );
echo $currentURL [0]; // will output everything before &r

希望能有所帮助!