Php 正在处理URL中的ID

Php 正在处理URL中的ID,php,javascript,jquery,ajax,html,Php,Javascript,Jquery,Ajax,Html,我有一个由一组jQuery支持的网站;使用一组菜单按钮动态加载内容 现在,我想知道的是: 你在blogger上见过吗?url类似于 blogger.com/blogger.g?blogID=abcd#id 对于#id,如果你放#概览,它会显示统计数据。如果你把#allposts放进去,它会显示所有的帖子,同样,内容也会根据url中的#id而变化。我见过很多网站也使用这种方法来提供永久链接 我怎样才能做到这一点?对于每个菜单按钮,我都提供了一个#id,如果传入url,我需要切换到特定的菜单 注意

我有一个由一组jQuery支持的网站;使用一组菜单按钮动态加载内容

现在,我想知道的是:

你在blogger上见过吗?url类似于

blogger.com/blogger.g?blogID=abcd#id
对于#id,如果你放#概览,它会显示统计数据。如果你把#allposts放进去,它会显示所有的帖子,同样,内容也会根据url中的#id而变化。我见过很多网站也使用这种方法来提供永久链接

我怎样才能做到这一点?对于每个菜单按钮,我都提供了一个#id,如果传入url,我需要切换到特定的菜单

注意:我使用PHP、js、jQuery和HTML5+/-Ajax

请不要说你能用这个和那个!我是一个有点知识的人,也就是说我不是一个职业选手。所以请给我提供一些算法或代码


提前感谢:)

窗口。location.hash
将在URL中包含哈希值(
\id
\overview
等)。然后,您可以使用页面加载时运行的javascript来检查window.location.hash的值,并根据它包含的内容,在需要从服务器检索数据时,可以使用ajax调用来修改页面

哈希值不会发送到服务器,因此必须是处理它的客户端代码

对于特定的代码,您可以使用类似这样的代码

$(document).ready(function() {
    switch(window.location.hash) {
        case "#id":
            // code here
            break;
        case "#overview":
            // code here
            break;
        default:
            // code here
            break;
    }
});

其中包含的特定代码显然取决于您尝试执行的操作。如果需要从服务器获取数据,则需要发出ajax调用来检索该数据。

这称为哈希值,不是由浏览器发送到服务器的,只能通过javascript访问。 它们可以通过

var hash_val = window.location.hash;    
Javascript还为哈希更改提供事件

window.onhashchange = function(){
}
如果你想让它修改内容,那么

window.onload=function()
  {
   var hash_val = window.location.hash;    
    //do more ajax stuff here
  }

请注意,正如jfriend00的回答所暗示的,Blogger、GMail和其他“Web2.0”网站处理#的方式是通过触发AJAX请求。这个想法是(答案中的细节)您的javscript解析URL,并触发AJAX请求或重定向,以向用户显示适当的内容。谢谢朋友,但我有点喜欢@jfriend00的帖子,他得到了一个更简单的解决方案,包括您所有的分解代码。谢谢你的努力。你好