您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

page分页代码,在其它程序和ThinkPHP里面都使用

2025/8/8 16:57:08发布15次查看
分页模块,自己再改改样式即可
m_pagingdataarray = array();
        $this->m_configuration = array();
/* 基础数据设置 */
        $this->setpagingdataarray($pagingdataarray);
        $this->setconfiguration($configuration );
        $this->setbasisdata();
    }
/* 设置数据 */
    private function setpagingdataarray($pagingdataarray)
    {
        /* 判断配置项的数据是否为空 */
        if(false == empty($pagingdataarray)) {
            $this->m_pagingdataarray = $pagingdataarray;
        } else {
            $this->m_pagingdataarray = array();
        }
    }
/* 设置配置项数据 */
    private function setconfiguration($configuration)
    {
        /* 判断配置项的数据是否为空 */
        if(false == empty($configuration)) {
            $this->m_configuration = $configuration;
        } else {
            $this->m_configuration = array();
        }
    }
/* 处理判断数组中是否存在某个键名 */
    private function setuppase($property, $key, $content)
    {
        /* 判断 $key 是否在数组中存在的键名 */
        if(true == array_key_exists($key, $this->m_configuration)) {
            $this->$property = $this->m_configuration[$key];
        } else {
            $this->$property = $content;
        }
    }
/* 基础数据设置 */
    private function setbasisdata()
    {
        $this->setfraction();
        $this->settotal();
        $this->setpage();
        $this->setstarting();
        $this->settotalfraction();
        $this->seturl();
    }
/* 设置每页显示数据的条数 */
    private function setfraction()
    {
        $this->setuppase('m_fraction', 'traction', 15);
    }
/* 设置数据的总条数 */
    private function settotal()
    {
        $this->setuppase('m_total', 'total', 0);
    }
/* 设置页面传递过来的页码值 */
    private function setpage()
    {
        /* 判断 $key 是否在数组中存在的键名 */
        if(true == array_key_exists('page', $this->m_pagingdataarray)) {
            $this->m_page = max(1, (false == empty($this->m_pagingdataarray['page']) ? intval($this->m_pagingdataarray['page']) : 0));
        } else {
            $this->m_page = 1;
        }
echo $this->m_pagingdataarray['page'];
    }
/* 设置查询数据的起始值 */
    private function setstarting()
    {
        $this->m_starting = ($this->m_page - 1) * $this->m_fraction;
    }
/* 设置计算出来的总页数, 总页数 = 总条数除以每页显示的条数。*/
    private function settotalfraction()
    {
        $this->m_totalfraction = ceil($this->m_total/$this->m_fraction);
/* 当前页数大于最大页数时,将总页数的值赋值给当前页面,防止超越操作。*/
        if($this->m_totalfraction m_page) {
            $this->m_page = $this->m_totalfraction;
        }
    }
/* 设置分页的url地址 */
    private function seturl()
    {
        $this->setuppase('m_url', 'url', null);
    }
/* 获取查询数据的起始值 */
    public function getstarting()
    {
        return $this->m_starting;
    }
/* 获取每页显示的条数值 */
    public function getfraction()
    {
        return $this->m_fraction;
    }
/* 获取url拼接,处理url拼接方法 */
    public function geturlsplice()
    {
        $urlsplice = '?';
        if(false == empty($this->m_pagingdataarray)) {
            //删除当前数组中的page数据
            unset($this->m_pagingdataarray['page']);
            foreach($this->m_pagingdataarray as $pkey=>$pvalue) {
                /* 拼接普通url */
                if((false == empty($pvalue)) && (false == is_array($pvalue))) {
                    $urlsplice .= $pkey.'='.$pvalue.'&';
                }
            }
        }
        return $urlsplice;
    }
/* 返回拼接好的html代码(包括js代码) */
    public function getpaginghtmlinfo()
    {
        $urlsplice = $this->geturlsplice();
$pageurl = $this->m_url.$urlsplice.'page=';
        $pageurls = $pageurl.($this->m_page-1);
        $pageurly = $pageurl.($this->m_page+1);
$html = null;
//当数据只有一页的情况,总页数 等于 1 时
        if($this->m_totalfraction == 1) {
            $html .= '上一页       ';
            $html .= 当前第 $this->m_page 页       ;
            $html .= '下一页       ';
            $html .= '共1页       ';
            $html .= 共有 $this->m_total 条数据       ;
//第一页,(首页的时候,当前页码为 1 时)
            } elseif($this->m_page == 1) {
            $html .= '上一页       首页 ';
            $html .= 当前第 $this->m_page 页       ;
            $html .= 下一页       ;
            $html .= 共 $this->m_totalfraction 页       ;
            $html .= 共有 $this->m_total 条数据       ;
//到尾部的时候,(当前页码 等于 总行数时)
            } elseif($this->m_page == $this->m_totalfraction) {
            $html .= 上一页       尾部 ;
            $html .= 当前第 $this->m_totalfraction 页       ;
            $html .= '下一页       ';
            $html .= 共 $this->m_totalfraction 页       ;
            $html .= 共有 $this->m_total 条数据       ;
//正常的时候
            } else {
            $html .= 上一页       正常 ;
            $html .= 当前第 $this->m_page 页       ;
            $html .= 下一页       ;
            $html .= 共 $this->m_totalfraction 页       ;
            $html .= 共有 $this->m_total 条数据       ;
        }
return $html;
    }
}
下面来介绍用法:
$configuration = array(
    'total' => 30,  //总条数
    'traction' => 3,  //当前页面需要显示的条数
    'url' => './studentmanagement',  //分页按钮的url地址
);
//调用分页模块,第一个参数是将页面获取的数据传递进去,$_request全局变量,post或者get的都可以获取大。第二个参数就是上面的数组,配置参数
$pageingobj = new pagingmodel($_request, $configuration);
$this->assign('pageing', $pageingobj->getpaginghtmlinfo());  //然后就调用这个方法返回分页代码,放在页面上去就可以了
ad:真正免费,域名+虚机+企业邮箱=0元
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product