zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    tyvj 1031 热浪 最短路
    【bzoj2005】 [Noi2010]能量采集 数学结论(gcd)
    hdu 1394 Minimum Inversion Number 逆序数/树状数组
    HDU 1698 just a hook 线段树,区间定值,求和
    ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力
    ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
    ZeptoLab Code Rush 2015 A. King of Thieves 暴力
    hdoj 5199 Gunner map
    hdoj 5198 Strange Class 水题
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
  • 原文地址:https://www.cnblogs.com/foreversun/p/6664100.html
Copyright © 2011-2022 走看看