zoukankan      html  css  js  c++  java
  • 将分页程序写成函数

       由于网站中有很多页面都要使用分页功能,因此将分页程序携程函数,在需要的时候调用能大大减少编程的工作量。

       1.分页函数的设计和实现

        设计函数首先要确定的是函数的输入和输出,对于分页函数来说,

      输入参数:1)记录结果集的总数 $RecordCount;

           2)每页显示的记录数 $PageSize;

           3)当前显示哪一页$Page;

           4)当前页面的URL $url;

           5)查询关键字$keyword.

       只要在程序中设置好这5个参数(如果没有查询关键字,可不设置$keyword),就可以调用分页函数了。该分页函数没有返回值,其主要功能是输出分页链接。

    <?php
    /*
     * 
     * @Authors peng--jun 
     * @Email   1098325951@qq.com
     * @Date    2015-11-08 13:54:33
     * @Link    http://www.cnblogs.com/xs-yqz/
     * @version $Id$
     输入参数:1)记录结果集的总数 $RecordCount;
    
           2)每页显示的记录数 $PageSize;
    
           3)当前显示哪一页$Page;
    
           4)当前页面的URL $url;
    
           5)查询关键字$keyword.
     ==========================================
     */
     header("Content-type: text/html; charset=UTF-8"); 
     function page($RecordCount,$PageSize,$Page,$url,$keyword){
         $PageCount =ceil($RecordCount/$PageSize);         //计算总页数
        $page_previous = ($Page<=1)?1:$Page-1;        //计算上一页的页数
        $page_next = ($Page>=$PageCount)?$PageCount:$Page+1;    //计算下一页的页数
        $page_start = ($Page-5>0)?$Page-5:0; //只显示本页前5页的页码链接
        $page_end = ($page_start+10<$PageCount)?$page_start+10:$PageCount;//只显示后5页的页码链接
        //若超过10页,只显示本页前后5页的页码链接
        //$page_start = $page_end-10;
        if($page_start<0) $page_start = 0;//若当前页不合法,更正 
    
        $parse_url = parse_url($url);
        if(empty($parse_url["query"]))
            $url = $url.'?';            //若不存在,在$url后添加?
        else    $url = $url.'&';        //若存在,在$url后添加&
        if(empty($keyword)){
            if($Page== 1)        $navigator =  "[首页] [上一页] ";
            else $navigator =   " <a href='?page=1'>[首页]</a> <a href=".$url."Page= $page_previous>[上一页]</a>  ";    
        for($i=$page_start;$i<$page_end;$i++){    //输出页码链接
            $j = $i+1;
            if ($j==$Page) $navigator = $navigator. "$j  ";
            else $navigator = $navigator. "<a href='".$url."Page=$j'>$j</a>  ";        
        }
        if($Page== $PageCount)    // 设置“下一页”链接
        $navigator = $navigator. " [下一页] [末页]";
        else $navigator = $navigator.  " <a href=".$url."Page=$page_next>[下一页]</a>  <a href=".$url."Page=$PageCount>[末页]</a> ";
        $navigator.= " &nbsp; 共".$RecordCount. "条记录&nbsp; $Page / $PageCount 页";
        }else{                //如果设置了查询关键词,则将查询关键词加到URL链接中
            $keyword = $_GET["keyword"];
            $navigator = "<a href=".$url."keyword=$keyword&Page=$page_previous>上一页</a>  ";
            for($i=$page_start;$i<$page_end;$i++){
                $j = $i+1;
                $navigator = $navigator."<a href='".$url."keyword=$keyword&Page=$j'>$j</a>  ";
            }
            $navigator =$navigator."<a href=".$url."keyword=$keyword&Page=$page_next>下一页</a> ";
            $navigator.= " &nbsp; 共".$RecordCount. "条记录&nbsp; $Page / $PageCount 页";    
        }
        echo $navigator;           //输出分页链接
    }
    ?>
  • 相关阅读:
    性能测试
    领域驱动设计(DDD)的实际应用
    Js模块模式
    Roslyn and NRefactory
    前端与后端分离的架构实例3
    angular + easyui 做界面验证
    java.lang.OutOfMemoryError: unable to create new native thread(转)
    oracle client server那点事
    一次处理ORA-07445的历险记(转)
    一条执行4秒的sql语句导致的系统问题 (转)
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4947106.html
Copyright © 2011-2022 走看看