在php中检索window.location.hash url

时间:2009-05-24 17:52:47

标签: php javascript jquery

我在这里使用jquery选项卡式界面http://www.imashdigital.com/#2,并希望在php中返回选项卡号。

理想情况下,我想运行一个javascript函数(在计时器上),用当前标签不断更新全局 php变量

根据这个php值1到4,我将加载一个不同的侧边栏。

我会感激任何帮助和一些代码示例,因为我是新手。

亲切的问候

乔纳森

3 个答案:

答案 0 :(得分:2)

哈希之后的URI部分永远不会发送到服务器。 PHP无法访问它。请改用查询字符串参数($_GET)。或者使用客户端脚本(javascript)。

答案 1 :(得分:1)

我建议您不要运行计时器,而是将$ .post附加到事件“标签激活”。这将使任何标签更改实时应用,并且不会触发不必要的请求。

答案 2 :(得分:0)

我在最近几个项目中使用了标签面板,我使用的解决方案如下:

<强> HTML

<ul class="tabs">
  <li><a href="#en_en">English</a></li>
  <li><a href="#fr_fr">Français</a></li>
</ul>
<div class="panel" id="en_en"><!-- Content --></div>
<div class="panel" id="fr_fr"><!-- Content --></div>

<强>的jQuery

// the currently selected tab, or a default tab (don't forget to prepend the #)
var tab = location.hash || '#en_en';

// register a click handler on all the tabs
$('ul.tabs a').click(function(event){
    event.preventDefault(); // prevents the browser from scrolling to the anchor

    // hide all panels, then use the link's href attribute to find 
    // the matching panel, and make it visible
    // you can, of course, use whatever animation you like
    $('div.panel').hide().filter(  $(this).attr('href')  ).show();

).filter('[href*='+tab+']').click();
// above: in case of refreshing/bookmarking: find the tab link that contains
// the current location.hash, and fire its click handler

它运行良好,因为服务器端代码不需要知道选择了哪个选项卡,但它还支持刷新或为特定选项卡添加书签,而无需用户再次选择选项卡。