2009-06-23 131 views

回答

5

也许其他人都是对的,一个简单的$ _GET就足够了,但如果你的URL中的#(http://nhs/search-panel.php#?patientid=2)应该在那里,你必须用JavaScript(和Ajax例如JQuery)来做这件事,因为#后面的所有东西都是据我所知,没有包含在请求中。

7

简而言之:你不能!浏览器不会将其请求中的片段(哈希标记后面的URL部分)发送到服务器。你必须依赖一些客户端的javascript:也许你可以在使用它之前重写url。

0

编辑:哎呀,这是行不通的。其他海报是正确的说,散列之后的东西永远不会到达你的服务器。

东西沿着这些线路应该做你:

//Get complete URI, will contain data after the hash 
$uri = $_SERVER['REQUEST_URI']; 

//Just get the stuff after the hash 
list(,$hash) = explode('#', $uri); 

//Parse the value into array (will put value in $query) 
parse_str($hash, $query); 

var_dump($query); 
1

如果你检查你的服务器日志,你应该看到,没有浏览器实际发送的URL请求的#anchor一部分,所以你不能挑它在服务器端。

如果您需要知道它,您需要编写一些Javascript语言以从document.location.href中提取它并将其发送到您的服务器,方法是将其转换为常规GET参数并重定向用户,或者在XMLHttpRequest/AJAX的背景中。

相关问题