0

0

搞定thinkphp带参分页

php中文网

php中文网

发布时间:2016-06-13 11:36:36

|

2135人浏览过

|

来源于php中文网

原创

thinkphp是什么就不用多说了,一个轻量级的PHP MVC框架;前几天搞搞这个东西,做了个相册,发现,它的分页很让我纠结,特别是带参分页。

按照它的手册来吧,没多大效果;后来,直接看它的分页类,也不是很复杂。搞明白了它的原理,只不过就是将$where数组中的参数,分离,以GET的方式,传递到分页类中,然后再将这些参数又组合到查询语句中,实现带参分页。然后,才发现,在$where数组中传递的,和表单中的name值要一致,才能这样做。否则的话,传递过来,到了下一页,是收不到的。

还有一个问题,$where数组中,是可以再有数组的,好比有$p=array('eq',$kid),这个变量$p再添加到$where中的话,直接按手册上的来分离参数,似乎也没效果。解决这个问题时,又写了个函数,判断是不是数组,然后再分离,相当于一个递归。

还有个问题就是,分页连接的时候,会自动加上本页的操作名,就是说,本来是/Index/Pager/的话,分页后,会变成/Index/Pager/Pager,这也让我纠结,不知道原因在哪里。

最后呢,还是没有按照手册上的方法弄好。想了想,不就是把参数传递过去嘛,需要那么纠结嘛。改装了一下它的show()函数,去掉了URL参数过滤这个功能,直接就是分页,比如说,页面是/Index/Pager,那么,使用ushow("/Index/Pager")(改装后的),得到的就是/Index/Pager/&p=2,很明显p=2就是第二页。这个也可以用于不带参的分页。实际上,我就是觉得它这个分页有点纠结,在还没有写到带参分页的时候,我就改装了这个函数,正好,这里用上了。然后呢,就是把需要的参数在Action里面组装一下,传递到前台,到前台哪里呢,肯定是javascript里面。然后再将这个参数,添加到分页后的标签里面;部分代码:

$show = $Page->ushow(__URL__."/".$_REQUEST[C(VAR_ACTION)]."/");(调用组装后的分页函数,实际上,就是将它封装好的,又打开,自己处理。)

$output="/KID/".$kid."/spbegintime/".$p["spbegintime"]."/spendtime/".$p["spendtime"]."/spname/".$p["spname"];(Action里面,组装分页参数;也可以用&来区分参数。)

$this->assign('outpager',$output);绑定页面变量。

$("#pager a").click(function(){
var i=$("#pager a").index(this);
$("#pager a").eq(i).attr("href",$("#pager a").eq(i).attr("href")+"{$outpager}");
});前台修改连接地址,将参数加进来。

最近TP出2.1了,还没去看,嘿嘿。感觉吧,有时候用这样的框架,会不习惯,似乎就是少了一种感觉。用JQ也一样,有时候就习惯性的$("form").submit();而其实页面中就一两处用到了JS,都没把JQ加载进来;我都在想,会不会使用JQ,让我把普通JS给忘了?这也许就是JQ的目标之一吧,哈哈。当然,作为开发者的话,不能只局限于一个框架,一种语言。

最近上班改ccmall.cn也纠结,常常就是本地改好了,上传到服务器上,就没用了;没办法,服务器我没权限修改,我得将改好的往上传,上面的人再修改服务器上的。咳。。

有时候在想,像ccmall.cn这样的大型B2B,B2C网站,做成功了,每天至少是要经受上万IP,数十万次PV的,像这样一个课题,弄到实际运用中去,会不会有问题?毕竟大学里面的课题和实际运用的项目,差距是非常大的。还有,项目中,将大量的,本来最基本的html标签,封装成那么复杂的服务端控件,生成大量的ViewState,然后修改的时候,就N麻烦。有必要么?在修改的过程中,经常就发现,有时候,花大力气写的一个服务端控件,就一个地方用到了,要实现的功能,完全可以几句很基本的JS和简单的HTML标签搞定。咳。。

看了看一些PHP项目,觉得还是那种简单明了,简洁,不臃肿。。微软就喜欢把别人当傻瓜,什么都封装好。(这里仅仅指asp.net)。当然了,也不是说asp.net一无是处哈,只是觉得,好多人都没有正确的运用asp.net就是。其实,.net的强类型,编译型,以及泛型,Ado.net等都是非常不错的,还有后来推出的asp.net MVC,包括.net3.0之后推出来的一些新特性,像SQL CLR,这样重逻辑的数据库操作,还是挺实用的。

啰嗦了好多,只是好久没写了,嘿嘿。以上某些观点只是个人的一些见解哈,如果你不认同,大可不必上劲哈,欢迎拍砖。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 2.6万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号