2012-02-16 67 views
0
我有一些奇怪的问题

,请参阅以下...URL追加问题

在当前网址...

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> 

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

我不是为什么会发生这种情况?请建议。谢谢。

+0

你不明白为什么发生了什么? – 2012-02-16 19:49:40

+3

你只能得到一个查询字符串。因为你指定了一个新的查询字符串,它取代了当前活动的查询字符串,并且不会附加到它。 – zzzzBov 2012-02-16 19:50:51

+0

''? – elclanrs 2012-02-16 19:51:33

回答

0

您正在重置查询字符串并将其附加到当前URL。你只使用?一次,然后附加额外的变量,例如使用&,例如

?VAR1 =相关& VAR2 =意见

这使您可以通过多个PARAMS。

0

当你有一个网址的结尾的查询,如:

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

任何链接,您随后删除点击或更换查询字符串。所以点击与

?srtby=thisotherthing 

在href链接将把你http://localhost/web/gallery/test/scs/?srtby=thisotherthing

这些参数的不“栈” - 单击将有链接到包括任何和所有的查询参数为他们出现在下面的页面。

+0

是的,有没有办法做到这一点? – seoppc 2012-02-16 20:02:34

+0

您需要修改页面中的任何URL以包含当前查询字符串参数。 Smarty可能会提供帮助,或者您可以使用jQuery脚本修改网址。 – 2012-02-16 20:19:25

+0

你能提供任何例子吗? – seoppc 2012-02-16 20:22:51

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

+0

你有这个问题,如果你可以发布一个例子,这将是非常棒的。 – seoppc 2012-02-16 20:01:18