discuz分页函数改成基于jqueryd的ajax分页函数

浏览
370
回复
1
收藏
0
点赞
0

1#

2018-11-30 02:35:02
  1. /**
  2. *AJAX分页
  3. *$num 为总共的条数   比如说这个分类下共有15篇文章
  4. *$perpage为每页要显示的条数
  5. *$curpage为当前的页数
  6. *$url为请求路径,
  7. *$obj为html对象,返回给jqery处理
  8. *$page为$multipage这个字符串中要显示的表示页数的变量个数
  9. *$maxpages为最大的页数值   此函数最后有一句$maxpage = $realpages;
  10. */
  11. function multi($num, $perpage, $curpage,$url,$obj, $maxpages = 0, $page = 10, $autogoto = TRUE, $simple = FALSE) {
  12.    global $maxpage;
  13.    $ajaxtarget = !empty($_GET['ajaxtarget']) ? " ajaxtarget="".dhtmlspecialchars($_GET['ajaxtarget'])."" " : '';

  14.    $multipage = '';
  15.    //$mpurl .= strpos($mpurl, '?') ? '&' : '?';
  16.    $realpages = 1;
  17.    //判断总条数是否大于设置的每页要显示的条数
  18.    if($num > $perpage) {
  19.       //设置在$multipage中当前页数之前还要输出几个页数
  20.       $offset = 2;

  21.       $realpages = @ceil($num / $perpage);
  22.       //总共的页数(不知道$maxpages的意思),这里假设是15条
  23.       $pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
  24.       //如果总页数小于multipage中要输出的页数$page,则只输出到实际页数为止
  25.       if($page > $pages) {
  26.          $from = 1;
  27.          $to = $pages;
  28.          //如果大于的话,就要输出$page个页数(我们假设的的15条就符合这个条件)
  29.       } else {
  30.          $from = $curpage - $offset;
  31.          $to = $from + $page - 1;
  32.          //假设curpage为4,目前为止,from为2,to为11
  33.          //下面假设curpage为1

  34.          if($from < 1) {
  35.             $to = $curpage + 1 - $from;
  36.             $from = 1;
  37.             //目前为止from为1,to为3
  38.             if($to - $from < $page) {
  39.                //因为这里的前提条件是总条数大于page,所以,如果$to-$from小于page的话显然达不到目的,应把$to设置为$page
  40.                $to = $page;
  41.             }//目前为止 from为1 ,to为10
  42.          } elseif($to > $pages) {//to是不可以大于总页数的
  43.             $from = $pages - $page + 1;
  44.             $to = $pages;
  45.          }

  46.       }

  47.       $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="javascript:void(0);" onclick="ajaxpage(\''.$obj.'\',\''.$url.'\','.$curpage.')">1 ...</a>' : '').
  48.          ($curpage > 1 && !$simple ? '<li><a href="javascript:void(0);" onclick="ajaxpage(\''.$obj.'\',\''.$url.'\','.($curpage-1).')">上一页</a></li>' : '');
  49.       for($i = $from; $i <= $to; $i++) {
  50.          $multipage .= $i == $curpage ? '<li class="active"><a>'.$i.'</a></li>' :
  51.             '<li><a href="javascript:void(0);" onclick="ajaxpage(\''.$obj.'\',\''.$url.'\','.$i.')">'.$i.'</a></li>';
  52.       }

  53.       $multipage .= ($curpage < $pages && !$simple ? '<li><a href="javascript:void(0);" onclick="ajaxpage(\''.$obj.'\',\''.$url.'\','.($i+1).')">下一页</a></li>' : '');
  54.    }
  55.    $maxpage = $realpages;
  56.    return $multipage;
  57. }
复制代码
JQUERY
  1. function ajaxpage(obj,url,page)
  2. {
  3.    $.ajax({
  4.       type: "GET",
  5.       url : url+"&curpage="+page,
  6.       success:function(data){
  7.         
  8.          $(obj).html(data);
  9.       }
  10.    })
  11. }
复制代码


使用
  1. <?php
  2. $multipage = multi($total, 2,$curpage, 'index.php?act=goods&op=consulting_ajaxlist&goods_id='.$goods_id,'#gd-com',10);

  3. echo $multipage;

  4. ?>
复制代码

复制代码


不知道什么意思?具体要实现什么效果?

回复主题

已有 1 条回复
您需要登录后才可以回帖 登录 | 注册
高级模式

关于楼主
新手上路
帖子
4
日志
0
精华
0
精华推荐