最近呢,在做以TP5(thinkphp 5)为框架的商城系统,然后做到商品列表展示的时候,刚开始挺顺利,显示数据,数据分页,但是呢,做到关键字查询数据时候,数据通过模糊查询数据全部导入到了列表里面,于是就想分页,结果就在这卡住了。为什么呢,大家想,别管是原生的写的分页也好,还是通过框架自带的分页也好,大概的思路就是先想一些条件(比如:商品价格大于1000的商品)然后我们在这个条件的基础上在写limit从第几数据,显示多少数据,然后再通过前台的传来的页码来进行控制,普通的这样想没错,但是搜索关键字的话,当我们输入好关键字提交时,页面就会刷新提交,刚开始显示第一页还能正常的显示,但是一旦当我点第二页时,完,因为刷新,我的关键字不在了,怎么办呢,网上查了好多,总两种:利用jquery的load方法进行局部刷新,还有利用Ajax进行无刷新分页(个人不推荐,因为很麻烦的),好了,话不多说,下面就个人理解,来说一下这两个技术。
在讲这两个技术前,我先说一下注意事项:
- 此次用到thinkphp5框架和jquery框架,还有Ajax技术,不懂这些的童鞋,请先去学习一下这些技术。
- 以上都说的是真分页,当让你也可以用假分页一次性把数据全获取到,然后在前台用一个插件或者自己写个分页js但是呢,个人不喜欢,所以在这我也就不说这个技术了。
- 个人感觉别管是用无刷新还是局部刷新,关键就是在页码上做一些控制,详细的我会在下面讲解
- 还有一种方式,因为TP5的关系,paginta()这个方法,你可以给它第三个参数,参数是你关键字,这样也行,但是有局限性。
首先呢,我根据我的项目自己搞了个模板,如图:
至于页码呢,tp5自带页码查询类,样式是我在网上找的,大家想用的话可以看看这个ThinkPHP5自定义分页类,样式自定义
然后,我们先将讲解局部刷新的方式:
这是前台的html