分页步骤:
第一大步;先处理视图界面:
1、使用layui前端框架,在根目录下新建一个文件夹命名为static文件,把下载的layui的demo放在文件夹下
2、在视图页面中的head中加入链接和脚本:
<link rel="stylesheet" href="/static/layui/css/layui.css">
<script src="/static/layui/layui.js"></script>
--------------------------------------
<script type="text/javascript">
layui.use(['layer', 'laypage', 'element'], function(){
var layer = layui.layer
,laypage = layui.laypage
,element = layui.element();
//分页
laypage({
cont: 'pageDemo' //分页容器的id
,pages: <?=$pageCount?> //总页数:需要从控制端传出数据
,skin: '#5FB878' //自定义选中色值
,skip: true //开启跳页
,curr:<?=$page?>//当前显示的页数,也需要从控制端传参
,groups :3
,jump: function(obj, first){
if(!first){
// layer.msg('第'+ obj.curr +'页');
window.location.href="/Resource_Home/index/"+obj.curr;//向URL中传递页数并显示
}
}
});
});
</script>
---------------------------------------------
3、完成以上步骤后:把分页容器放在自己想要放的位置
分页容器放在分页所在的位置:
<!--
分页容器
-->
<div id="pageDemo"></div>
第二大步:处理控制器部分
1、 首先在libraries中创建类库:命名为MyPage.php
如下:基本是固定的,目的:是为了返回分页的位移量和每页的数据,处理非正常参数
//------------------------------------------------
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/2/23
* Time: 15:33
*/
class MyPage
{
public function __construct()
{
// Do something with $params
}
// 默认第几页
public $page=1;
// 默认一页10条
public $pageSize = 10;
/**
获取分页的位移量
**/
public function getOffset(){
$pageSQL = $this->page -1;
if($pageSQL<0){
$pageSQL = 0;
}
return $pageSQL * $this->getPageSize();
}
/**
* 返回每页多少条数据
* 注:处理非正常参数
**/
public function getPageSize()
{
if($this->pageSize <1){
$this->pageSize = 10;
}
return $this->pageSize;
}
}
//------------------------------------------------
2、需要在Model中获得分页查询的数据,和查询数据总的条数通过num_rows()方法
在controller中首次加载index时 要默认page=1;
需要引入类库,给page,pageSize传值
function index($page=1){
/// echo 'page:',$page,'<br>';
$this->load->library('MyPage');
$myPage = new MyPage();//实例化类库
$myPage->page = $page;//传值
$myPage->pageSize = 4;
//获取同步资源
$data['syn_resources'] = $this->Resource_Model->getSynResource($myPage);//从数据库中获取数据通过limit()
$rowCount=$this->Resource_Model->getSynResourceCount();//获取数据总共的数量通过: $num_rows = $query->num_rows();
$pageCount= $rowCount /$myPage->pageSize;//得到总共的页数
if(($rowCount % $myPage->pageSize)>0){//取余数不为零+1
$pageCount = $pageCount + 1;
}
//-----------------------------------
//把数据传送到界面上
$data['page'] = $page;
$data['pageCount'] = $pageCount;
$this->load->view('resource/resource_home_page',$data);
*******************************************
1、PHP如何通过URL传参:
http://localhost/Resource_Home/index?page=5&&pageSize=2
方法一:
$page=$_GET['page'];
$pageSize=$_GET['pageSize'];
方法二:CodeIgniter框架自带的方法
http://localhost/Resource_Home/index/2
function index($page=1){}
在方法里直接传参,如果没有通过URL传参,则默认为page=1
第一大步;先处理视图界面:
1、使用layui前端框架,在根目录下新建一个文件夹命名为static文件,把下载的layui的demo放在文件夹下
2、在视图页面中的head中加入链接和脚本:
<link rel="stylesheet" href="/static/layui/css/layui.css">
<script src="/static/layui/layui.js"></script>
--------------------------------------
<script type="text/javascript">
layui.use(['layer', 'laypage', 'element'], function(){
var layer = layui.layer
,laypage = layui.laypage
,element = layui.element();
//分页
laypage({
cont: 'pageDemo' //分页容器的id
,pages: <?=$pageCount?> //总页数:需要从控制端传出数据
,skin: '#5FB878' //自定义选中色值
,skip: true //开启跳页
,curr:<?=$page?>//当前显示的页数,也需要从控制端传参
,groups :3
,jump: function(obj, first){
if(!first){
// layer.msg('第'+ obj.curr +'页');
window.location.href="/Resource_Home/index/"+obj.curr;//向URL中传递页数并显示
}
}
});
});
</script>
---------------------------------------------
3、完成以上步骤后:把分页容器放在自己想要放的位置
分页容器放在分页所在的位置:
<!--
分页容器
-->
<div id="pageDemo"></div>
第二大步:处理控制器部分
1、 首先在libraries中创建类库:命名为MyPage.php
如下:基本是固定的,目的:是为了返回分页的位移量和每页的数据,处理非正常参数
//------------------------------------------------
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2017/2/23
* Time: 15:33
*/
class MyPage
{
public function __construct()
{
// Do something with $params
}
// 默认第几页
public $page=1;
// 默认一页10条
public $pageSize = 10;
/**
获取分页的位移量
**/
public function getOffset(){
$pageSQL = $this->page -1;
if($pageSQL<0){
$pageSQL = 0;
}
return $pageSQL * $this->getPageSize();
}
/**
* 返回每页多少条数据
* 注:处理非正常参数
**/
public function getPageSize()
{
if($this->pageSize <1){
$this->pageSize = 10;
}
return $this->pageSize;
}
}
//------------------------------------------------
2、需要在Model中获得分页查询的数据,和查询数据总的条数通过num_rows()方法
在controller中首次加载index时 要默认page=1;
需要引入类库,给page,pageSize传值
function index($page=1){
/// echo 'page:',$page,'<br>';
$this->load->library('MyPage');
$myPage = new MyPage();//实例化类库
$myPage->page = $page;//传值
$myPage->pageSize = 4;
//获取同步资源
$data['syn_resources'] = $this->Resource_Model->getSynResource($myPage);//从数据库中获取数据通过limit()
$rowCount=$this->Resource_Model->getSynResourceCount();//获取数据总共的数量通过: $num_rows = $query->num_rows();
$pageCount= $rowCount /$myPage->pageSize;//得到总共的页数
if(($rowCount % $myPage->pageSize)>0){//取余数不为零+1
$pageCount = $pageCount + 1;
}
//-----------------------------------
//把数据传送到界面上
$data['page'] = $page;
$data['pageCount'] = $pageCount;
$this->load->view('resource/resource_home_page',$data);
*******************************************
1、PHP如何通过URL传参:
http://localhost/Resource_Home/index?page=5&&pageSize=2
方法一:
$page=$_GET['page'];
$pageSize=$_GET['pageSize'];
方法二:CodeIgniter框架自带的方法
http://localhost/Resource_Home/index/2
function index($page=1){}
在方法里直接传参,如果没有通过URL传参,则默认为page=1
本文介绍如何使用layui前端框架实现分页功能,包括视图界面设置、控制器处理及URL传参等关键步骤。

4041

被折叠的 条评论
为什么被折叠?



