我有一个html页面和php脚本,它是html页面上表单的动作。 我希望能够在上一个url(来自html页面)的哈希之后得到最后一段文本
www.website.com/htmlpage#token5
所以我得到了一个字符串:“token5”被置于一个变量中,这样当我提交html表单时,PHP脚本会获取之前的URL或这些行中的某些内容,以便能够获取此字符串。 / p>
类似的东西:
1. submit form from www.website.com/htmlpage#token5
2. action of form goes to www.website.com/phppage
3. php page gets the "token5" string.
我该怎么做呢? thanks`
答案 0 :(得分:0)
您可以使用JavaScript来获取哈希值,然后将其添加到表单元素中。
if(window.location.hash) {
var hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character
// do whatever you want to do with hash
} else {
// No hash found
}
答案 1 :(得分:0)
请看一下:
Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?
#token5永远不会传递给服务器。
您可以做的是将#identra5的值放入隐藏的输入中:
<input type="hidden" value="token5" name="token"/>
然后服务器端PHP取决于您发布表单的方式,您可以这样做:
// If your action on form is 'post'
$token = $_POST['token'];
或
// If your action on form is 'get'
$token = $_GET['token'];
答案 2 :(得分:0)
打破网址的最简单方法就是使用parse_url
$url='http://www.website.com/htmlpage#token5';
$parts=parse_url( $url );
echo '<pre>',print_r($parts,true),'</pre>';
/* or */
$hash = parse_url( $url, PHP_URL_FRAGMENT );
echo $hash;
将输出
Array
(
[scheme] => http
[host] => www.website.com
[path] => /htmlpage
[fragment] => token5
)
token5