类:

<?php

//分页工具类

class Page{

/*
         * 获取分页字符串
         * @param1 string $uri,分页要请求的脚本url
         * @param3 int $counts,总记录数
         * @param4 int $length,每页显示的记录数
         * @param5 int $page = 1,当前页码
         * @return string,带有a标签的,可以点击发起请求的字符串
        */
        public static function getPageStr($uri,$counts,$length,$page = 1){
            //构造一个能够点击的字符串
            //得到数据显示的字符串
            $pagecount = ceil($counts/$length);                //总页数
            $str_info = "当前一共有{$counts}条记录,每页显示{$length}条记录,一共{$pagecount}页,当前是第{$page}页";

//生成可以操作的连接:首页 上一页 下一页 末页
            //求出上一页和下一页页码
            $prev = ($page <= 1) ? 1 : $page - 1;
            $next = ($page >= $pagecount) ? $pagecount : $page + 1;
            $str_click = <<<END
                <a href="{$uri}?page=1">首页</a>
                <a href="{$uri}?page={$prev}">上一页</a>
                <a href="{$uri}?page={$next}">下一页</a>
                <a href="{$uri}?page={$pagecount}">末页</a>
END;

//按照页码分页字符串
            $str_number = '';
            for($i = 1;$i <= $pagecount;$i++){
                $str_number .= "<a href='{$uri}?page={$i}'>{$i}</a>&nbsp;";
            }

//下拉框分页字符串:利用js的onchang事件来改变当前脚本的href
            $str_select = "<select onchange=\"location.href='{$uri}?page='+this.value\">";
            //将所有的页码放入到option
            for($i = 1;$i <= $pagecount;$i++){
                if($i == $page)
                    $str_select .= "<option value='{$i}' selected='selected'>{$i}</option>";
                else
                    $str_select .= "<option value='{$i}'>{$i}</option>";
            }
            $str_select .= "</select>";
        
            //返回值
            return $str_info . $str_click . $str_number . $str_select;
        }
    }

封装page分页类的更多相关文章

  1. page分页类

    <?php /** file: Page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...

  2. layui -page 分页类

    <?phpnamespace page; // +---------------------------------------------------------------------- / ...

  3. page分页

    首先封装一个分页类 public class Page<T> { /** * 当前页号 */ private int pageNumber; /** * 总条数 */ private in ...

  4. TP5 分页类,自定义样式

    结合X-admin 后台框架 在做项目,为了保持分页风格的一致,所以需要自定义 一个分页类. 一.在项目的 extend 目录,创建 cus 目录 二.创建 Page 分页类,代码如下 <?ph ...

  5. 自定义MVC框架之工具类-分页类的封装

    以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类. 这次重新改造MVC有几个很大的收获 >全部代码都是用Ubuntu+Vim编写,以前 ...

  6. Django分页类的封装

    Django分页类的封装 Django ORM  封装 之前有提到(Django分页的实现)会多次用到分页,将分页功能封装起来能极大提高效率. 其实不是很难,就是将之前实现的代码全都放到类中,将需要用 ...

  7. SSM框架下分页的实现(封装page.java和List<?>)

    之前写过一篇博客  java分页的实现(后台工具类和前台jsp页面),介绍了分页的原理. 今天整合了Spring和SpringMVC和MyBatis,做了增删改查和分页,之前的逻辑都写在了Servle ...

  8. mysql mybatis-generator plugin 有page实体类的分页

    page实体类 package cn.zsmy.tmp; import java.io.Serializable; /** * 分页对象. * */public final class Page im ...

  9. php四个常用类封装 :MySQL类、 分页类、缩略图类、上传类;;分页例子;

    Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = null;//数据库连接 /** * 私有的构造方法 */ pr ...

随机推荐

  1. zabbix-agent passive

    http://www.cnblogs.com/mysql-dba/p/5010902.html http://blog.chinaunix.net/uid-29155617-id-4668602.ht ...

  2. FW:使用weave管理docker网络

    Posted on 2014-11-12 22:20 feisky 阅读(1761) 评论(0) 编辑 收藏 weave简介 Weave creates a virtual network that ...

  3. Qt high DPI

    http://doc.qt.io/qt-5/highdpi.html Qt Support Ability to provide pixmaps or artwork for high resolut ...

  4. 关注web前端

    web前端新手上路 http://blog.sina.com.cn/s/articlelist_2720105253_0_1.html

  5. Java学习-021-Properties 获取配置项对应的值

    在日常的脚本编写过程中,通常会获取配置文件中的配置项,以执行相应的业务逻辑. 小二上码...若有不足之处,敬请大神指正,不胜感激! 获取配置项值的源码如下所示: /** * Get value fro ...

  6. Apple Developer Program Roles Overview

    Apple Developer Program Roles Overview There are three roles that can be assigned to Apple Developer ...

  7. Calculating simple running totals in SQL Server

    Running total for Oracle: SELECT somedate, somevalue,SUM(somevalue) OVER(ORDER BY somedate ROWS BETW ...

  8. Python-S13作业-day1-之登陆程序

    Python-S13-day1 需求: 1.让用户输入账号密码,账号密码正确,登陆程序,打印欢迎信息: 2.如果账号,或密码输入错误,提示用户重新输入,用户有三次机会: 3.如果用户第三次输入的账号或 ...

  9. Number类型

    这是计算基础,复杂的以后不充. 1.Number(); var box = { toString :function(){ return '123'; } }; alert(Number(box)); ...

  10. [BS] 小知识点总结-02

    1.  dispatch_GCD 可让某操作延迟x秒执行 //模拟网速慢,延迟3s返回数据(就会导致右侧数据和左侧标签不对应) dispatch_after(dispatch_time(DISPATC ...