我已经部分开发了我的分页实现,但我有一个问题。
我希望分页看起来像这样:
Page 3 | Page 4 | Page 5
分页中的中间链接是当前选定的页面。如果页面为0,则当前选择的页面是第一个链接。如果页面不为0,则当前选择的页面是第二个链接。如果页面是最后一页,则当前选择的页面是第3个链接。
到目前为止,我的实现突出了当前页面,但没有将当前页面作为中心链接。此外,当它到达最后一页时,它会为不存在的分页添加2个额外页面。
<?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; ?>
有什么建议吗?
答案 0 :(得分:1)
据我所知,你的问题就是正确的输出。
<?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
应该给中心。
希望有所帮助。如果没有,请添加更多信息,我会更新我的答案。