【发布时间】:2009-06-23 12:27:56
【问题描述】:
在我的项目中使用 LightBox 机制时,我得到了一个 URL http://nhs/search-panel.php#?patientid=2 我需要通过 GET 机制从这里收集那个耐心 ID,这可能在 PHP 中吗?
【问题讨论】:
-
问题是 # 阻止我这样做......
标签: php
在我的项目中使用 LightBox 机制时,我得到了一个 URL http://nhs/search-panel.php#?patientid=2 我需要通过 GET 机制从这里收集那个耐心 ID,这可能在 PHP 中吗?
【问题讨论】:
标签: php
简单地说:你不能!浏览器不会将请求中的片段(哈希标记之后的 URL 部分)发送到服务器。您必须依赖一些客户端 javascript:也许您可以在使用之前重写 url。
【讨论】:
也许其他人都是对的,一个简单的 $_GET 就足够了,但是如果你的 URL (http://nhs/search-panel.php#?patientid=2) 中的 # 应该在那里,你将不得不使用 JavaScript(和 Ajax,例如 JQuery)来做到这一点,因为 # 之后的所有内容据我所知,未包含在请求中。
【讨论】:
如果您检查您的服务器日志,您应该会看到没有浏览器实际传输请求的 URL 的#anchor 部分,因此您无法在服务器端获取它。
如果您需要了解它,您需要编写一些 Javascript 来从 document.location.href 中提取它并将其发送到您的服务器,方法是将其转换为常规 GET 参数并重定向用户,或者在后台使用 XMLHttpRequest/AJAX。
【讨论】:
编辑:糟糕,这行不通。其他张贴者说哈希之后的任何内容都不会到达您的服务器是正确的。
你应该这样做:
//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);
【讨论】: