网址附加问题

时间:2012-02-16 19:48:27

标签: html smarty

我有一些奇怪的问题,请看以下......

在当前网址...

http://localhost/web/gallery/test/scs/

并跟随html

<a href="?srtby=relevance">Relevance</a> //on click url becomes http://localhost/web/gallery/test/scs/?srtby=relevance
<a href="?srtby=views">Views</a> //on click url becomes http://localhost/web/gallery/test/scs/?srtby=views



<a href="?srtbydate=today">Today</a>

点击网址变为http://localhost/web/gallery/test/scs/?srtbydate=today而不是http://localhost/web/gallery/test/scs/?srtby=relevance?srtbydate=today

我不知道为什么会这样?请建议。感谢。

3 个答案:

答案 0 :(得分:0)

您正在重置查询字符串并将其附加到当前URL。你只用?一次,然后附加额外的vars使用&amp; e.g。

VAR1 =关联&安培; VAR2 =观点

这允许您传递多个参数。

答案 1 :(得分:0)

如果您对网址末尾有查询,请执行以下操作:

http://localhost/web/gallery/test/scs/?srtby=relevance

您随后点击的任何链接删除或替换该查询字符串。所以点击带有

的href的链接
?srtby=thisotherthing

带你去http://localhost/web/gallery/test/scs/?srtby=thisotherthing

这些参数不会“堆叠” - 您单击的链接必须包含任何和所有查询参数,以便它们显示在下一页上。

答案 2 :(得分:0)

这是预期的行为。发生的事情是你用你的URL重写查询字符串并且它不会附加,它只是替换。要解决此问题,您需要在代码中添加或替换内容来构建URL。最简单的方法是在对象外部构建查询字符串,然后将其序列化为查询字符串。

更新:在PHP中轻松完成此操作

<?php
    $currentQuery = $_SERVER['QUERY_STRING'];
    $url = array();
    parse_str($currentQuery, $url);
    $url['srtby'] = 'views';
?>
<a href="<?php echo http_build_query($url); ?>">Link</a>

请注意,上述内容需要PHP 5.