• TP3.23 与Laypage 结合进行分页


    demo地址:http://tp.ytlwin.top

    控制器

    <?php
    namespace HomeController;
    use ThinkController;
    
    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:;" onclick="return del({$vo.id});">删除</a>
    						<a href="javascript:;" 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="+type+"&choose="+checkValue;
    	} 
    
    	$("#sou").bind("click",function(event){
    	    var type=$("#type").val();//获取假设的搜索条件值
    	    var checkValue=$("#slc1").val(); 
    	    window.location.href="?typeid="+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>
    

      

  • 相关阅读:
    SQL*Loader-951错误
    excel导出
    zookeeper常见bug
    可编辑表格
    tree的应用
    join
    hibernate manytomany 双向
    hibernate 多对多 单向关联
    hibernate 一对多(多对一)双向
    hibernate one2many
  • 原文地址:https://www.cnblogs.com/foreversun/p/6664100.html
Copyright © 2020-2023  润新知