分页中的首页和尾页如何添加

WBOY
Release: 2016-06-23 13:40:46
Original
2444 people have browsed it

下面这个分页函数中没有计算 首页和 尾页的
如何加上呢,有点迷茫!

/** * 分页函数 * * @param $num 信息总数 * @param $curr_page 当前分页 * @param $perpage 每页显示数 * @param $urlrule URL规则 * @param $array 需要传递的数组,用于增加额外的方法 * @return 分页 */function pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) {	if(defined('URLRULE') && $urlrule == '') {		$urlrule = URLRULE;		$array = $GLOBALS['URL_ARRAY'];	} elseif($urlrule == '') {		$urlrule = url_par('page={$page}');	}	$multipage = '';	if($num > $perpage) {		$page = $setpages+1;		$offset = ceil($setpages/2-1);		$pages = ceil($num / $perpage);		if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages);		$from = $curr_page - $offset;		$to = $curr_page + $offset;		$more = 0;		if($page >= $pages) {			$from = 2;			$to = $pages-1;		} else {			if($from <= 1) {				$to = $page-1;				$from = 2;			}  elseif($to >= $pages) {				$from = $pages-($page-2);				$to = $pages-1;			}			$more = 1;		}		$multipage .= '<a class="a1">'.$num.L('page_item').'</a>';		if($curr_page>0) {			$multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">'.L('previous').'</a>';//上一页功能			if($curr_page==1) {				$multipage .= ' <span>1</span>';			} elseif($curr_page>6 && $more) {				$multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>..';			} else {				$multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>';			}		}		for($i = $from; $i <= $to; $i++) {			if($i != $curr_page) {				$multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>';			} else {				$multipage .= ' <span>'.$i.'</span>';			}		}		if($curr_page<$pages) {			if($curr_page<$pages-5 && $more) {				$multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';//下一页功能			} else {				$multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';			}		} elseif($curr_page==$pages) {			$multipage .= ' <span>'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">'.L('next').'</a>';		} else {			$multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';		}	}	return $multipage;}
Copy after login


回复讨论(解决方案)

首页和尾页还需要计算么,1就是首页,$pages就是尾页

首页和尾页还需要计算么,1就是首页,$pages就是尾页


可能我表达有误
主要是首页不会表示,比如,循环出很多页面码,那么这个第一肯定是用数组表示
针对此例,我不知如何用数组表示第一个页码

当然了,这里不仅仅是显示什么页的问题,还要有链接的,所以要计算啊

这里不是写了吗?

if($curr_page==1) {elseif($curr_page==$pages) {
Copy after login



顺便贴贴我的分页组件中的创造页码部分,请指教下
		function createPage(par){			var _page={};//存放运行中的页面信息			_page.extendpage=par.extendpage?par.extendpage:opt.extendpage;			_page.totalpage=par.totalpage;			//编制分页			var expbase=4;			_page.page=parseInt(par.page);	//用于解决js弱类型转换失败的问题			if(isNaN(_page.page) || isNaN(_page.totalpage)){				return;//分页错误,不进行操作			}			opt.renderTo.empty();			opt.renderTo.append('当前页码:'+par.page+' ');				//从头插入 create from begin			_page.pagenow=1;//初始化分页跟踪。			if(_page.page>=_page.extendpage-1){				_page.pagenow=1;				_createPage(_page,opt);			}				//插入中间的分页,即在之前的分页和当前的分页之间插入一些中间的分页			_page.start=_page.pagenow+1;			_page.end=_page.page-_page.extendpage-1;		//		//中间有空余位置,可以插入数据,使用随机或者什么其他的方式来插入中间页			var tarr=[];			for(var exppow=1;_page.start<_page.end-_mathexp(expbase,exppow);exppow++){				_page.pagenow=_page.end-_mathexp(expbase,exppow);				tarr.push(_page.pagenow);				//_createpage(par);			}			var tl=tarr.length;			for(var i=0;i<tl;i++){				_page.pagenow=tarr.pop();				_createPage(_page,opt);			}				//create left side extend			if(_page.pagenow<_page.page-_page.extendpage-1){				_page.pagenow=_page.page-_page.extendpage-1;			}			for(var i=_page.pagenow+1;i<_page.page;i++){				//在初始化i的时候pagenow要么是已经完成了的第一页,要么是后面的其他页,所以这里需要进行处理				_page.pagenow=i;				_createPage(_page,opt);			}				//插入当前页 insert page now			_page.pagenow=_page.page;			_page.isNow=true;			_createPage(_page,opt);			_page.isNow=false;				//插入当前页后面的扩展页 create right side extend			for(var i=1+_page.pagenow; (i<_page.totalpage) && i<(_page.page+_page.extendpage+1) ;i++){				_page.pagenow=i;				_createPage(_page,opt);			}				//插入当前至最后一页中间的分页			//var tstart=_page.pagenow;			_page.start=_page.pagenow;//修复这个重点错误redlz2500@20140115			if(_page.pagenow+_page.extendpage<_page.totalpage){				//中间还有空余量,插入页数				for(var exppow=1;_page.start+_mathexp(expbase,exppow)<_page.totalpage;exppow++){					_page.pagenow=_page.start+_mathexp(expbase,exppow);					_createPage(_page,opt);				}			}				//插入最后一页 insert last page			if(_page.pagenow<_page.totalpage){				_page.pagenow=_page.totalpage;				_createPage(_page,opt);			}		};
Copy after login

首页和尾页是固定的,你直接在$multipage的前面加首页,后面加尾页就行了

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template