我试图编写分页代码,它应该显示:
<&。1 ... 11>>
但它显示了这一点:
<< -5 ... 11>>
如果内容少于11页,则会发生这种情况。
这是我的代码
<?php if($page != 1): ?>
<a href="?page=<?php echo $page-1; ?>&srch-term=<?php echo @$_GET['srch-term']; ?>&tag=<?php echo @$_GET['tag']; ?>&color=<?php echo @$_GET['color']; ?>" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
<?php else: ?>
<span aria-hidden="true">«</span>
<?php endif; ?>
</li>
<?php
$limitPage = 5;
$fromPage = ($page - $limitPage) <= 0 ? 1:$page - $limitPage;
$endPage = ($page + $limitPage) >= $count? $count:$page+$limitPage;
if($page <= ($limitPage)) $endPage = ($limitPage*2) + 1;
if(($page - $limitPage) > ($count - ($limitPage*2))) $fromPage = $count - ($limitPage*2);
?>
<?php for($i=$fromPage;$i<=$endPage;$i++): ?>
<li class="<?php echo ($page == $i)? 'active':''; ?>"><a href="?page=<?php echo $i; ?>&srch-term=<?php echo @$_GET['srch-term']; ?>&tag=<?php echo @$_GET['tag']; ?>&color=<?php echo @$_GET['color']; ?>"><?php echo $i; ?></a></li>
<?php endfor; ?>
<li class="<?php echo ($page == $count)? 'disabled':''; ?>">
<?php if($page != $count): ?>
<a href="?page=<?php echo $page+1; ?>&srch-term=<?php echo @$_GET['srch-term']; ?>&tag=<?php echo @$_GET['tag']; ?>&color=<?php echo @$_GET['color']; ?>" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
<?php else: ?>
<span aria-hidden="true">»</span>
<?php endif; ?>
答案 0 :(得分:0)
看起来这就是没有按预期工作的路线。
if(($page - $limitPage) > ($count - ($limitPage*2))) $fromPage = $count - ($limitPage*2);
这是一个php沙箱链接,其中包含一些可以帮助你的调试代码。 http://sandbox.onlinephpfunctions.com/code/df2faac69d217ce8e5bea86b63325b8dd4c49600
$limitPage = 5;
$page = 1;
$count = 5;
$fromPage = ($page - $limitPage) <= 0 ? 1:$page - $limitPage;
$endPage = ($page + $limitPage) >= $count? $count:$page+$limitPage;
echo $fromPage . ' ' . $endPage. "\n";
if($page <= ($limitPage)) $endPage = ($limitPage*2) + 1;
echo $fromPage . ' ' . $endPage. "\n";
if(($page - $limitPage) > ($count - ($limitPage*2))) $fromPage = $count - ($limitPage*2);
echo $fromPage . ' ' . $endPage;