laypage+laytpl示例

浏览:6240 发布日期:2016/08/02 分类:功能实现 关键字: laypage laytpl 人维网络
laypage加laytpl的使用方法,技术不好,摸索了好久才弄出来。
首先去layer官网下载这两个插件,按照他们的文档引入js
然后我的代码如下:
1:html+jquery<div id="article_list"><!--这是循环获取的数据--></div>

//laypage分页
Ajaxpage();
function Ajaxpage(curr,num){
    if(!num){
        num=5;    //num是当前要查询的数量,我这里设置了默认5条,前台可以修改要显示的数量
    };
    var catid=$('#catid').val(); //这是条件赛选栏目id
    var starttime=$('#starttime').val();//这是条件筛选开始时间
    var endtime=$('#endtime').val();//这是条件筛选结束时间
    var title=$('#title').val();//这是标题关键词
    $.get('{:U("Content/article")}', {
        page: curr || 1,num:num,catid:catid,starttime:starttime,endtime:endtime,title:title
    }, function(data){
                       //这一段是laytpl的模板渲染的赋值
            var tpl = document.getElementById('arlist').innerHTML;    //定义tpl <script id="arlist" type="text/html"></script>  
            laytpl(tpl).render(data.info.lists, function(html){  //把获取到的json数据传给这里面
                document.getElementById('article_list').innerHTML = html;   //这是获取数据,然后渲染到   id为article_list的div里面
            });
            laypage({   //这一段是laypage的分页参数
                cont: $('#AjaxPage'), 
                pages:data.info.allpage, 
                skip: true,
                skin: '#23c6c8',
                curr: curr || 1,
                groups: 3,
                jump: function(obj, first){
                    if(!first){
                        Ajaxpage(obj.curr,num) 
                    }
                }
            });
    });
}
//这是tpl的js模板    ,   部分相同的地方我删了,留了不相同的,里面还有if标签的用法,只是这里的U方法我不知道怎么使用,就用了jquery的方法来调用一些功能
<script id="arlist" type="text/html">
    {{# for(var i=0;i<d.length;i++){ var vo=d[i] }}    //这里就是js里面的for循环了,只是要用 tpl的模板标签 {{#  }}  包含
        <tr>
          <td>{{vo.catname}}</td>
          <td style="text-align:center">{{vo.views}}</td>
          <td style="text-align:center">{{vo.comments}}</td>
          <td style="text-align:center">{{vo.author}}</td>
          <td style="text-align:center">{{vo.uptime}}</td>
          <td style="text-align:center">
                {{# if(vo.status==1){ }} 
                    <a class="label label-info" href="javascript:;" onclick="return ar_status(this,'status_{{vo.id}}_0');">审核</a>
                {{# }else{ }}
                    <a class="label label-danger" href="javascript:;" onclick="return ar_status(this,'status_{{vo.id}}_1');">审核</a>
                {{# } }}
           </td>
           <td style="text-align:center">
               <div class="btn-group">
                   <a data-toggle="dropdown" class="label label-info dropdown-toggle">文章操作  <span class="caret"></span></a>
                   <ul class="dropdown-menu">
                        <li><a href="javascript:ar_edit({{vo.id}})" class="font-bold">修改</a> </li>
                        <li class="divider"></li>
                        <li><a href="javascript:ar_del({{vo.id}})" class="J_del">删除</a></li>
                     </ul>
                </div>
           </td>
        </tr>    
    {{# }; }}
</script>
2:php//文章列表
    public function article(){
        if($_GET['page']){
            $Nowpage = $_GET['page']?$_GET['page']:1; //获取当前页
            $catid=intval($_GET['catid']);//获取条件筛选栏目id
            $starttime=strtotime($_GET['starttime']);//条件筛选开始时间
            $endtime=strtotime($_GET['endtime']);//条件筛选结束时间
            $title=$_GET['title'];//条件筛选关键词
            $map="id>0";//组合查询条件
            if($catid>0){
                $map.=" and catid=".$catid."";    
            }
            if(!empty($starttime)){
                $map.=" and uptime>=".$starttime." and uptime<".$endtime."";    
            }
            if(!empty($endtime)){
                $map.=" and uptime>=".$starttime." and uptime<".$endtime."";
            }
            if(!empty($title)){
                $map.=" and title like '%$title%'";
            }
            $limits = $_GET['num']?$_GET['num']:5;   //这里默认查询5条数据
            // 获取总条数
            $count = M('Article')->where($map)->count();
            //计算总页面
            $allpage = ceil($count / $limits);
            $allpage = intval($allpage);
            $lists = M('Article')->where($map)->page($Nowpage, $limits)-> order('listorder asc')-> select();
            foreach($lists as $k=>$v){
                $lists[$k]['catname']=catname($v['catid']);//这是我写的获取当前栏目名称的方法
                $lists[$k]['uptime']=friendlyDate($v['uptime']);//这是我写的获取时间的方法
            }
            $data['allpage']=$allpage;//返回总页数
            $data['lists']=$lists;//查询的数据列表
            $this->success($data);exit;
        }
        $cate=M('Category')->order('listorder ASC')->select();
        $this->assign('catelist',$cate);
        $this->display();
    }
我做的页面





有不清楚的可以联系我:QQ 3126620990 我的网站:http://www.renweinet.net
http://www.hjlog.net


评论( 相关
后面还有条评论,点击查看>>