我有一些奇怪的问题,请看以下......
在当前网址...
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
我不知道为什么会这样?请建议。感谢。
答案 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.