大家好,我是新手,我做了一个php分页,基本效果已经实现了,我想让当前页的颜色与其它页颜色不同,应该怎么实现?我想了好几天实在搞不定啊!还有假如以后我的页数多了,如何隐藏页数? 并且怎样让当前页居中显示???请知道的高手,帮忙指点下!
...
阅读全文>>
1){
echo 第一页 ;
echo 上一页 ;
}
//循环页数
for($i=1;$i echo .$i. ;
}
if($page echo 下一页 ;
echo 最后一页 ;
}
?>
------解决方案--------------------
不错,hoho
主要改动这里
//循环页数
for($i=1;$i echo .$i. ;
}
这个循环,$i从max($page-x, 1)开始,到min($page+x, $pages)结束,如果页数足够,2*x+1就是显示总页数【不包括前、后、第一、最后】
$i === $page,说明是当前页
------解决方案--------------------
php code/** * 设置分页样式 * * @access public * @param integer $shownumcount 显示几个数字(例如:1 2 3 ...) * @param integer $totalpage 数据的总页数 * @param integer $page 当前页数 * * @return array $pagenumlist 页数(数字)列表 */function shownumber($shownumcount, $totalpage, $page){ $shownumcount = $totalpage >= $shownumcount ? $shownumcount : $totalpage; if($totalpage > $shownumcount && $page > ceil($shownumcount / 2)) { if($totalpage - $page > floor($shownumcount / 2)) { $pagenumlist = array_slice(range(1, $totalpage), $page - floor($shownumcount / 2) - 1, $shownumcount); } else { $pagenumlist = range($totalpage - $shownumcount + 1, $totalpage - $shownumcount + $shownumcount); } } else { $shownumcount = $shownumcount ? $shownumcount : 1; $pagenumlist = range(1, $shownumcount); } return $pagenumlist;}$shownumcount = 10; // 显示十个页码$totalpage = 100; // 假如一共有100页数据$currentpage = 9; // 假如当前选择的是第9页$pagenumlist = shownumber($shownumcount, $totalpage, $currentpage);/*接下来你只需要在html中循环输出这些页码,加上连接即可,当然了,如果标识当前页的话,你可以类似这样{foreach from=$pagenumlist item=page} {$page}{/foreach}*/
