我有一个PHP foreach循环,它获取了一组数据。一个特定的数组是href。在我的echo语句中,我将特定的href附加到我的下一页,如下所示:
echo '<a href="nextpage.php?url='.stats.'">Stats</a>'
它重定向到我的下一页,我可以通过$ _GET获取URL。问题是我想在附加的URL中的#后面获取值。例如,下一页的URL如下所示:
stats.php?url=basket-planet.com/ru/results/ukraine/?date=2013-03-17#game-2919
我想要做的是能够在第一页的javascript或jQuery中获得#game-2919,将其附加到URL并转到stats.php页面。这甚至可能吗?我知道我不能在PHP之后得到#的值,因为它不是发送到服务器端的。有解决方法吗?
这就是我的想法:
echo '<a href="#" onclick="stats('.$stats.');">Stats</a>';
<script type="text/javascript">
function stats(url){
var hash = window.location.hash.replace("#", "");
alert (hash);
}
但那不起作用,我没有警报,所以我甚至无法尝试AJAX并重定向到下一页。提前谢谢。
更新:这是我的整个index.php页面。
<?php
include_once ('simple_html_dom.php');
$html = file_get_html('http://basket-planet.com/ru/');
foreach ($html->find('div[class=games] div[class=games-1] div[class=game]') as $games){
$stats = $games->children(5)->href;
echo '<table?
<tr><td>
<a href="stats.php?url=http://www.basket-planet.com'.$stats.'">Stats</a>
</td></tr>
</table>';
}
?>
我的stats.php页面:
<?php include_once ('simple_html_dom.php');
$url = $_GET['url'];
//$hash = $_GET['hash'];
$html = file_get_html(''.$url.'');
$stats = $html->find('div[class=fullStats]', 3);
//$stats = $html->find('div[class='.$hash.']');
echo $stats;
?>
我希望能够做的是将哈希添加到传递给stats.php的URL。代码不多,因为我使用的是简单的HTML DOM解析器。我希望能够使用stats.php URL中的哈希来查看传递的URL。希望有所帮助...
答案 0 :(得分:0)
这是你要找的吗?
function stats(url)
{
window.location.hash = url.substring(url.indexOf("#") + 1)
document.location.href = window.location
}
如果您当前的网址为index.php#test
而您致电stats('test.php#index')
,则会将您重定向到index.php#index
。
或者,如果您要将当前网址的哈希添加到自定义网址:
function stats(url)
{
document.location.href = url + window.location.hash
}
如果您当前的网址为index.php#test
而您致电stats('stats.php')
,则会将您重定向到stats.php#test
。
发表评论:
function stats(url)
{
var parts = url.split('#')
return parts[0] + (-1 === parts[0].indexOf('?') ? '?' : '&') + 'hash=' + parts[1]
}
// stats.php?hash=test
alert(stats('stats.php#test'))
// stats.php?example&hash=test
alert(stats('stats.php?example#test'))
答案 1 :(得分:0)
在生成HREF时在PHP中使用urlencode,以便在用户单击链接时浏览器不会丢弃哈希部分:
的index.php:
<?php
include_once ('simple_html_dom.php');
$html = file_get_html('http://basket-planet.com/ru/');
echo '<table>';
foreach ($html->find('div[class=games] div[class=games-1] div[class=game]') as $games){
$stats = $games->children(5)->href;
echo '<tr><td>
<a href="stats.php?url=http://www.basket-planet.com'.urlencode($stats).'">Stats</a>
</td></tr>';
}
echo '</table>';
?>
然后在第二页上,parse网址中的哈希部分。
stats.php:
<?php
include_once ('simple_html_dom.php');
$url = $_GET['url'];
$parsed_url = parse_url($url);
$hash = $parsed_url['fragment'];
$html = file_get_html(''.$url.'');
//$stats = $html->find('div[class=fullStats]', 3);
$stats = $html->find('div[class='.$hash.']');
echo $stats;
?>