thinkPHP3.2.3结合Laypage实现的分页功能示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-20 15:51:03 浏览: 评论:0
这篇文章主要介绍了thinkPHP3.2.3结合Laypage实现的分页功能,结合实例形式分析了thinkPHP3.2.3结合Laypage实现分页的model控制器与view视图相关操作技巧,需要的朋友可以参考下。
本文实例讲述了thinkPHP3.2.3结合Laypage实现的分页功能,分享给大家供大家参考,具体如下:
控制器
- <?php
- namespace Home\Controller;
- use Think\Controller;
- class IndexController extends Controller {
- /**
- *@brief 查询
- ****/
- public function index(){
- $choose = I('choose','-6');
- $c['easy_hard'] = $choose;
- $type=I('typeid','');
- $nowpage=I('page',1);
- if($type == '')
- {
- if($choose == -6)
- {
- $totalpage=ceil((D('data')->count())/10);
- $infos=D('data')->limit(($nowpage-1)*10,10)->select();
- }else{
- $totalpage=ceil((D('data')->where($c)->count())/10);
- $infos=D('data')->where($c)->limit(($nowpage-1)*10,10)->select();
- }
- }else{
- if($choose == -6)
- {
- $map['data'] = array('like',"%$type%");
- $totalpage=ceil((D('data')->where($map)->count())/10);
- $infos=D('data')->where($map)->limit(($nowpage-1)*10,10)->select();
- }else{
- $map['data'] = array('like',"%$type%");
- $totalpage=ceil((D('data')->where($map)->where($c)->count())/10);
- $infos=D('data')->where($map)->where($c)->limit(($nowpage-1)*10,10)->select();
- }
- }
- $this->assign('type',$type);
- $this->assign('choose',$choose);
- $this->assign("totalpage",$totalpage);
- $this->assign("infos",$infos);
- $this -> display();
- }
- }
视图层
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Think Demo</title>
- <script type="text/javascript" src="__PUBLIC__/jquery-1.11.1/jquery.min.js"></script>
- <script type="text/javascript" src="__PUBLIC__/jquery-1.11.1/jquery.js"></script>
- <script type="text/javascript" src="__PUBLIC__/layer/layer.js"></script>
- <script type="text/javascript" src="__PUBLIC__/laypage/laypage.js"></script>
- </head>
- <body>
- <div>
- <select name="" id="slc1" onchange="return choose()">
- <option value="-6" <if condition="$choose eq -6 "> selected </if> >全部</option>
- <option value="0" <if condition="$choose eq 0 "> selected </if> >简单</option>
- <option value="1" <if condition="$choose eq 1 "> selected </if> >一般</option>
- </select>
- <input type="text" value="<if condition="$type neq '' "> {$type} </if>" id="type"><button id="sou">搜索</button>
- </div>
- <br>
- <table border="1" width="500" height="150" >
- <tr>
- <th>ID</th>
- <th>语言</th>
- <th>难易程度</th>
- <th>操作</th>
- </tr>
- <volist name="infos" id="vo">
- <tr>
- <th>{$vo.id}</th>
- <th>{$vo.data}</th>
- <th>
- <if condition="$vo.easy_hard eq '0'">简单
- <else />一般
- </if>
- </th>
- <th>
- <a href="javascript:;" rel="external nofollow" rel="external nofollow" onclick="return del({$vo.id});">删除</a>
- <a href="javascript:;" rel="external nofollow" rel="external nofollow" onclick="return edit({$vo.id});">修改</a>
- </th>
- </tr>
- </volist>
- </table>
- <div style="margin-top:15px; text-align:center;" id="page11"></div>
- <button onclick="return add_()"> 添加 </button> <br />
- <script type="text/javascript">
- function choose()
- {
- var type=$("#type").val();
- var checkValue=$("#slc1").val();
- window.location.href="?typeid=" rel="external nofollow" rel="external nofollow" +type+"&choose="+checkValue;
- }
- $("#sou").bind("click",function(event){
- var type=$("#type").val();//获取假设的搜索条件值
- var checkValue=$("#slc1").val();
- window.location.href="?typeid=" rel="external nofollow" rel="external nofollow" +type+'&choose='+checkValue;
- });
- $(function(){
- laypage({
- cont: 'page11',
- pages: {$totalpage}, //假设我们获取到的是18(后端计算完总页数后将总页数值传过来,放在这里即可(类似{$totalpage})).
- curr: function(){ //通过url获取当前页,也可以同上(pages)方式获取
- var page = location.search.match(/page=(\d+)/);
- return page ? page[1] : 1;//如果没有页数显示时,默认是第一页
- }(),
- jump: function(e, first){ //触发分页后的回调
- if(!first){ //一定要加此判断,否则初始时会无限刷新
- location.href=setParam("page",e.curr);
- }
- }
- });
- });
- function setParam(param,value){
- var query = location.search.substring(1);
- var p = new RegExp("(^|)" + param + "=([^&]*)(|$)");
- if(p.test(query)){
- //query = query.replace(p,"$1="+value);
- var firstParam=query.split(param)[0];
- var secondParam=query.split(param)[1];
- if(secondParam.indexOf("&")>-1){
- var lastPraam=secondParam.split("&")[1];
- return '?'+firstParam+'&'+param+'='+value+'&'+lastPraam;
- }else{
- if(firstParam){
- return '?'+firstParam+''+param+'='+value;
- }else{
- return '?'+param+'='+value;
- }
- }
- }else{
- if(query == ''){
- return '?'+param+'='+value;
- }else{
- return '?'+query+'&'+param+'='+value;
- }
- }
- }
- </script>
- </body>
- </html>
Tags: thinkPHP3 2 3 Laypage分页
相关文章
- ·ThinkPHP3.0略缩图不能保存到子目录(2013-12-03)
- ·ThinkPHP3.13新版使用体验(2014-04-12)
- ·ThinkPHP3.1新特性 多数据库操作的完善(2014-04-12)
- ·揭秘ThinkPHP3.1.2版本的独立分组功能(2014-04-12)
- ·thinkphp3.12安装出现这个问题的解决方法(2014-04-12)
- ·给thinkphp3.1案例blog添加一个删除的标签的方法(2014-04-12)
- ·ThinkPHP3.1.2整合UCenter详解(2014-04-12)
- ·ThinkPHP3.0中的一个快捷查询方法(|和&)(2014-04-12)
- ·ThinkPHP3.1教程新特性:动态设置自动完成和自动验证(2014-04-12)
- ·在thinkphp3中如何处理cookie数组(2014-04-12)
- ·ThinkPHP3.0中PHPMailer的使用(2014-04-12)
- ·THINKPHP3 静态缓存要素(2014-04-19)
- ·THINKPHP3 ajax无刷新分页类及实例(2014-04-19)
- ·关于THINKPHP3.0批量删除的设计思路和部分关键代码(2014-04-19)
- ·ThinkPHP3.0国际化配置方法(2014-04-19)
- ·thinkphp3.0 输出重复2次的解决方法(2014-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)