我已经部分开发了我的分页实现,但我有一个问题。
我希望分页看起来像这样:
Page 3 | Page 4 | Page 5分页中的中间链接是当前选定的页面。如果页面为0,则当前选择的页面是第一个链接。如果页面不是0,则当前选择的页面是第二个链接。如果页面是最后一页,则当前选择的页面是第三个链接。
到目前为止,我的实现突出显示了当前页面,但没有使当前页面成为中心链接。此外,当它到达最后一页时,它会向分页中添加两个不存在的额外页面。
<?php for($i=0; $i <= $pages && $i < 3; $i++) : ?>
<li <?php echo ($page == $i + $page) ? 'class="current-page"' : '' ?>><a href="category.php?category=<?php echo $category->category ?>&page=<?php echo $page + $i ?>"><?php echo $page + $i ?></a></li>
<?php endfor; ?>有什么建议吗?
发布于 2011-12-19 02:16:11
据我所知,这给出了正确的输出。
<?php
$page = 3;
$pages = 5;
$category = 'abc';
?>
<?php for ($i = 0; $i <= $pages && $i < 3; $i++) : ?>
<li<?php echo ($i == 1) ? ' class="current-page"' : '' ?>>
<a href="category.php?category=<?php echo $category ?>&page=<?php echo $page + $i ?>"><?php echo $page + $i ?></a>
</li>
<?php endfor; ?>输出结果将是...
<li>
<a href="category.php?category=abc&page=3">3</a>
</li>
<li class="current-page">
<a href="category.php?category=abc&page=4">4</a>
</li>
<li>
<a href="category.php?category=abc&page=5">5</a>
</li>为了测试,我将$category->category简化为$category。请确保在您的代码中将其改回。
使用($i == 1)而不是($page == $i + $page)的原因是在数据集0, 1, 2 ($1的值)中,1是中心。如果这是一个简化的版本,你将不得不做更多的数学运算,例如,number of items / 2 rounded down应该给出中心。
希望这能有所帮助。如果没有,请添加更多信息,我将更新我的答案。
https://stackoverflow.com/questions/8553243
复制相似问题