如何从URL获取查询字符串

时间:2012-07-19 10:59:04

标签: php jquery

我的页面名称是index.php,它包含一些链接(内部页面链接)和内容。点击链接我在链接"selected" class上应用li并显示相关内容,我的页面链接从index.php更改为index.php#c2(或#c3,#c4,c1为其他IDS)。

我的问题在于页面加载。如果我在其他页面中提供此链接,例如。在我page.php <li><a href="index.php?#c2">link2</a></li>我这样做了#c2,那么我怎么知道"selected" class基于此传递了URL我想将li应用到$_SERVER。我是<li class="selected"><a href="#c1">link1</a></li> <li><a href="#c2">link2</a></li> <li><a href="#c3">link3</a></li> <li><a href="#c4">link4</a></li> <div id="c1"><!-- contents of link1 --></div> <div id="c2"><!-- contents of link2 --></div> <div id="c3"><!-- contents of link3 --></div> <div id="c4"><!-- contents of link4 --></div> 尝试过但未完成的。我无法在“?”之后得到字符串。

请告诉我是否有其他方法可以做到这一点..

$('.links a').click(function(){
    $('.links  a').parent().removeClass('selected');
    $(this).parent().addClass('selected');  
});

添加所选类的Jquery代码

{{1}}

提前致谢..

3 个答案:

答案 0 :(得分:3)

你不能在PHP中这样做,只是因为它是一个客户机制,PHP在服务器上:) 您必须直接在JS中解析查询字符串。

尝试这样的事情:

$('a [href='+document.location.hash+']').parent().addClass('selected');

答案 1 :(得分:1)

我认为这会奏效...... 例如

example.com/page.html#anchor
example.com/page.html#anotheranchor

sol'n是......

if(window.location.hash) {
  // Fragment exists
} else {
  // Fragment doesn't exist
}

答案 2 :(得分:0)

您可以在服务器脚本或javaScript中使用regexp,而不是为每个元素定义clss。 只需使用下面给出的正则表达式模式,它将只为您提供URL中的链接部分。

     ^.*index.php/?(.*)$ 

要了解如何在JavaScript中使用RegExp Object,请点击链接。