在不添加URL的情况下更新当前URL

时间:2015-03-24 08:32:17

标签: php

我试图让我当前的网址更改而不在网址前添加更多信息。例如:

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

1 个答案:

答案 0 :(得分:2)

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

因此,当您第一次点击链接时,您的网址为:

http://www.google.com

但是,下次您点击下一个链接时,您当前的网址就是上面的网址。

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

希望有所帮助!