当前位置:Gxlcms > PHP教程 > 分页中的首页和尾页如何添加

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

时间:2021-07-01 10:21:17 帮助过:11人阅读

下面这个分页函数中没有计算 首页和 尾页的
如何加上呢,有点迷茫!
  1. /** * 分页函数 * * @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) {
  2. if(defined('URLRULE') && $urlrule == '') {
  3. $urlrule = URLRULE;
  4. $array = $GLOBALS['URL_ARRAY'];
  5. } elseif($urlrule == '') {
  6. $urlrule = url_par('page={$page}');
  7. }
  8. $multipage = '';
  9. if($num > $perpage) {
  10. $page = $setpages+1;
  11. $offset = ceil($setpages/2-1);
  12. $pages = ceil($num / $perpage);
  13. if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages);
  14. $from = $curr_page - $offset;
  15. $to = $curr_page + $offset;
  16. $more = 0;
  17. if($page >= $pages) {
  18. $from = 2;
  19. $to = $pages-1;
  20. } else {
  21. if($from <= 1) {
  22. $to = $page-1;
  23. $from = 2;
  24. } elseif($to >= $pages) {
  25. $from = $pages-($page-2);
  26. $to = $pages-1;
  27. }
  28. $more = 1;
  29. }
  30. $multipage .= ''.$num.L('page_item').'';
  31. if($curr_page>0) {
  32. $multipage .= ' '.L('previous').'';//上一页功能
  33. if($curr_page==1) {
  34. $multipage .= ' <span>1</span>';
  35. } elseif($curr_page>6 && $more) {
  36. $multipage .= ' 1..';
  37. } else {
  38. $multipage .= ' 1';
  39. }
  40. }
  41. for($i = $from; $i <= $to; $i++) {
  42. if($i != $curr_page) {
  43. $multipage .= ' '.$i.'';
  44. } else {
  45. $multipage .= ' <span>'.$i.'</span>';
  46. }
  47. }
  48. if($curr_page<$pages) {
  49. if($curr_page<$pages-5 && $more) {
  50. $multipage .= ' ..'.$pages.' '.L('next').'';//下一页功能
  51. } else {
  52. $multipage .= ' '.$pages.' '.L('next').'';
  53. }
  54. } elseif($curr_page==$pages) {
  55. $multipage .= ' <span>'.$pages.'</span> '.L('next').'';
  56. } else {
  57. $multipage .= ' '.$pages.' '.L('next').'';
  58. }
  59. }
  60. return $multipage;}


回复讨论(解决方案)

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

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


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

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

这里不是写了吗?

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



顺便贴贴我的分页组件中的创造页码部分,请指教下
  1. function createPage(par){
  2. var _page={};//存放运行中的页面信息
  3. _page.extendpage=par.extendpage?par.extendpage:opt.extendpage;
  4. _page.totalpage=par.totalpage;
  5. //编制分页
  6. var expbase=4;
  7. _page.page=parseInt(par.page);
  8. //用于解决js弱类型转换失败的问题
  9. if(isNaN(_page.page) || isNaN(_page.totalpage)){
  10. return;//分页错误,不进行操作
  11. }
  12. opt.renderTo.empty();
  13. opt.renderTo.append('当前页码:'+par.page+' ');
  14. //从头插入 create from begin
  15. _page.pagenow=1;//初始化分页跟踪。
  16. if(_page.page>=_page.extendpage-1){
  17. _page.pagenow=1;
  18. _createPage(_page,opt);
  19. }
  20. //插入中间的分页,即在之前的分页和当前的分页之间插入一些中间的分页
  21. _page.start=_page.pagenow+1;
  22. _page.end=_page.page-_page.extendpage-1;
  23. //
  24. //中间有空余位置,可以插入数据,使用随机或者什么其他的方式来插入中间页
  25. var tarr=[];
  26. for(var exppow=1;_page.start<_page.end-_mathexp(expbase,exppow);exppow++){
  27. _page.pagenow=_page.end-_mathexp(expbase,exppow);
  28. tarr.push(_page.pagenow);
  29. //_createpage(par);
  30. }
  31. var tl=tarr.length;
  32. 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){="" for(var="" i="_page.pagenow+1;i<_page.page;i++){" 在初始化i的时候pagenow要么是已经完成了的第一页,要么是后面的其他页,所以这里需要进行处理="" 插入当前页="" insert="" page="" now="" _page.isnow="true;" 插入当前页后面的扩展页="" right="" (i<_page.totalpage)="" &&="" i<(_page.page+_page.extendpage+1)="" ;i++){="" 插入当前至最后一页中间的分页="" var="" tstart="_page.pagenow;" _page.start="_page.pagenow;//修复这个重点错误redlz2500@20140115" if(_page.pagenow+_page.extendpage<_page.totalpage){="" 中间还有空余量,插入页数="" exppow="1;_page.start+_mathexp(expbase,exppow)<_page.totalpage;exppow++){" 插入最后一页="" last="" if(_page.pagenow<_page.totalpage){="" };<="" pre=""> <p></p> <p class="sougouAnswer"> 首页和尾页是固定的,你直接在$multipage的前面加首页,后面加尾页就行了 </p></tl;i++){>

人气教程排行