1 基本的使用
最基础的请参考Thinkphp自带的完全开发手册(http://document.thinkphp.cn/manual_3_2/data_page.html)
我想分享的一点是setconfig函数使用时,不仅仅能传入普通的字符串,传入html标签也是可以的
$Page ->setConfig('prev','<img src="/public/System/img/last.png" class="last">'); $Page ->setConfig('next','<img src="/public/System/img/next.png" class="next">');这样就可以用图片代替上一页与下一页了
2 在不改写原生分页类的条件下ajax的使用
原生的thinkphp 分页类对ajax的使用不太友好,许多人选择了第三方的分页类或者对自带的进行了改写,这当然很好,但也是有其他的实现方法的
我们可以利用thinkphp的 fetch 方法实现(完全开发手册中对fetch的说明)
(1)我们创建一个html文件用于接受数据
下面是ajaxreceiver.html:
<div class="main-left-block"> <volist name='votes' id='v'> <div class="block" οnclick="window.open('__MODULE__/Vote/detail/vid/{$v.id}','_self')"> <present name="v.voteimage"> <img src="{$Think.const.UPLOAD_IMG_URL}{$v.voteimage}" width="127px" height="127px"> <else/> <img src="{$Think.const.IMG_URL}back.png" width="127px" height="127px"> </present> <div class="text"> <p class="p1">{$v.votetitle}</p> <p class="p2">{$v.introduction}</p> <span class="span1">发起人:{$v.votesponser}</span> <span class="span2">已参与人数:{$v.votesum}人</span> <span class="span3">{$v.starttime}-{$v.endtime}</span> </div> </div> </volist> </div> <div class="pagebar"> {$page} </div>(2)在后台php方法中检测ajax并作出处理
if(IS_AJAX){ $this->assign('votes',$rst); $this->assign('page',$show); $html = $this->fetch('Vote/ajaxReceiver'); $this->ajaxReturn($html); }else{ $this->assign('votes',$rst); $this->assign('page',$show); $this->assign('hot',getHot()); $this->display(); }
$html 就是接受并解析了assign数据的下一页
然后通过ajaxreturn把下一页的信息传回ajax请求方
(3)在相应的html页面用javascript做出处理与响应
$.ajax({ type:'POST', url:url, success:function(res){ console.log(res); $(".listbox").html(res); } });
这里接受传过来的下一页的信息并把对应的div进行改写