PHP手动分页 pagination实现 带页数选择

css直接用thinkphp3的即可,上代码咯:

public function show_navigate($currentpage,$countpage)
	{		
		$page = $currentpage;
		$pages = $countpage;
		$url = U('Bomoutfactory/left');
		
		//最多显示多少个页码
		$_pageNum = 5;
		
		//当前页面小于1 则为1
		$page = $page<1?1:$page;
		
		//当前页大于总页数 则为总页数
		$page = $page > $pages ? $pages : $page;
		
		//页数小当前页 则为当前页
		$pages = $pages < $page ? $page : $pages;

		//计算开始页
		$_start = $page - floor($_pageNum/2);
		$_start = $_start<1 ? 1 : $_start;
		
		//计算结束页
		$_end = $page + floor($_pageNum/2);
		$_end = $_end>$pages? $pages : $_end;

		//当前显示的页码个数不够最大页码数,在进行左右调整
		$_curPageNum = $_end-$_start+1;
		
		//左调整
		if($_curPageNum<$_pageNum && $_start>1){  
			$_start = $_start - ($_pageNum-$_curPageNum);
			$_start = $_start<1 ? 1 : $_start;
			$_curPageNum = $_end-$_start+1;
		}
		
		//右边调整
		if($_curPageNum<$_pageNum && $_end<$pages){ 
			$_end = $_end + ($_pageNum-$_curPageNum);
			$_end = $_end>$pages? $pages : $_end;
		}

		$_pageHtml = "<a class='a1'>共".$countpage."页</a>";
		
		if($_start == 1){ // 本注释
			$_pageHtml .= '<a title="">第一页</a>';
		}else{
			$_pageHtml .= '<a  title="" href="'.$url.'&page=1">第一页</a>';
		}
		
		if($page>1){
			$_pageHtml .= '<a  title="" href="'.$url.'&page='.($page-1).'">上一页</a>';
		}
		
		for ($i = $_start; $i <= $_end; $i++) {
			if($i == $page){
				$_pageHtml .= '<span>'.$i.'</span>';
			}else{
				$_pageHtml .= '<a href="'.$url.'&page='.$i.'">'.$i.'</a>';
			}
		}
		
		if($page<$_end){
			$_pageHtml .= '<a  title="" href="'.$url.'&page='.($page+1).'">下一页</a>';
		}
		
		if($_end == $pages){ // 本注释
			$_pageHtml .= '<a title="">最后一页</a>';
		}else{
			$_pageHtml .= '<a  title="" href="'.$url.'&page='.$pages.'">最后一页</a>';
		}
		
		//$_pageHtml .= '</ul>';
		return $_pageHtml;
	}


本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2024 labisart.com 版权所有 | 联系:labartwork@163.com