Heim >Backend-Entwicklung >PHP-Tutorial >分页中的首页和尾页如何添加

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

WBOY
WBOYOriginal
2016-06-23 13:40:462472Durchsuche

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

/** * 分页函数 * * @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;}


回复讨论(解决方案)

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

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


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

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

这里不是写了吗?

if($curr_page==1) {elseif($curr_page==$pages) {



顺便贴贴我的分页组件中的创造页码部分,请指教下
		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);			}		};

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php使用百度翻译api示例分享Nächster Artikel:用yum安装Apache,PHP