Php Pagination Bootstrap Nav选项卡问题

时间:2013-10-21 15:18:06

标签: php twitter-bootstrap tabs pagination

我使用Bootstrap导航标签分割页面(我网站上的帖子。一个页面显示用户发布的帖子。另一个页面显示所有帖子。我使用$ _GET变量对页面进行分页。< / p>

<ul class="nav nav-tabs" id="myTab">
<li class="active"><a href="#myPosts">My Posts</a></li>
<li><a href="#allPosts">All Posts</a></li>
</ul>

<div class="tab-content">
<div class="tab-pane active" id="myPosts">
<?php include "myPosts.php"; ?></div>
<div class="tab-pane" id="allPosts">
<?php include "allPosts.php"; ?></div>
</div>

我通过包含相关页面链接在每个标签上显示内容。

以下是应将用户带到第2页的其中一个链接的示例。

 <a href="mySite.com/posts?page=2">2</a>

这适用于myPosts,但是当我点击第二个标签(所有帖子)并尝试分页时,它会将我带到myPosts的第二页。分页是基于url的,所以无论如何都要在url中输入tab / div是活动的吗?

1 个答案:

答案 0 :(得分:0)

在您发布的代码中,您有<div class="tab-pane active" id="myPosts"> 所以active类在该div中被硬编码。如果这就是你想要的,那就太棒了......否则,我认为在生成列表时我们需要做一些像这个未经测试的代码:

<?php
//dummy data
$pages=array(
    array('id'=>'1','posts'=>array('id'=>1,'content'=>'Go Bucks')),
    array('id'=>'2'),//more posts
    array('id'=>'3'),
    );
?>

<ul class="nav">
    <?php foreach($pages as $page): ?>
        <li class="<?= ($page['id']===$_GET['page']) ? ' active':null ?>">
            <a href="posts/page$<?= $page['id'] ?>"></a>Page <?= $page['id'] ?>
        </li>
    <?php endforeach; ?>
</ul>
<div class="tab-content">
    <?php foreach($pages as $page): ?>
        <div class="tab-pane<?php if($page['id']===$_GET['page']){echo ' active in';} ?>">
            //foreach posts here
        </div>
    <?php endforeach; ?>
</div>

我想要演示的想法是测试页面ID与$ _GET ['page']值。

另一个想法:查看bootstrap的示例“http://getbootstrap.com/javascript/#tabs 您可能喜欢在这里使用javascript,或者至少检查他们的示例以找出您想要的语法和行为。