2017-07-28 43 views
1

我有一个标签,我访问它们“新闻#p1,新闻#p2,新闻#p3”。但是当我今天分页时,我的网址就像这样“http://local.test.com/home/news#p1/2” 。php CodeIgniter-3.1.3 Tab分页和锚点

控制器

public function news($id) 
{ 
    if ($id) { 
     $this_page=$id; 
     var_dump($this_page);  
    } 

    $page = (int)$this->uri->segment(3); 
    var_dump($page); 
    ... 
} 

这是我的页面的HTML。

<ul class="pagination"> 
<li class="active"><a>1</a></li> 
<li><a href="http://local.test.com/home/news#p1/2" data-ci-pagination-page="2">2</a></li> 
<li><a href="http://local.test.com/home/news#p1/3" data-ci-pagination-page="3">3</a></li> 
<li><a href="http://local.test.com/home/news#p1/2" data-ci-pagination-page="2" rel="next">»</a></li> 
<li><a href="http://local.test.com/home/news#p1/5" data-ci-pagination-page="5">尾页</a></li> 
</ul> 

但是我var_dump($ this_page),它是空的。 当我删除锚点时,它可以跳。 我不知道为什么它不能跳,当添加锚点时。 希望有专业人士帮忙解决。谢谢!

+0

当您打印$ this-> uri-> segment(3)'时,您希望打印“#p1/2”?如果是这种情况,你不能那样做。 '#'之后的URL部分无法通过PHP访问。你可以使用javascript'window.location.hash'来获取它。 – user6838959

+0

谢谢,我明白了。 PHP在“/”中间的“#”时不能跳转。 – Fade

+0

太棒了!你能接受下面的答案,这样可以帮助其他人有类似的问题。 – user6838959

回答

0

无法通过PHP访问#后的URL部分。您可以使用javascript window.location.hash来获取它。