前段时间,在做项目的过程中引用tp3.2.3中的分页类做一个多条件查询,但在引用分页类之后,发现几个问题。在点击查询之后,翻页时,多条件查询的约束会消失,也就是说翻页时没有保留查询条件,sql回到最初的状态。下面就将这个问题的解决办法梳理如下:
1.首先,打开手册,看到如下图所示

如图所示,如果查询条件是post方式从表单传到后台,分页跳转时为了保证查询条件,加入以上红框中的代码然后输出。
蹊跷的是,按照手册这样做并没有测试成功,这是为什么呢?想了好久,那就从tp3.2.3的分页类看起

打开分页类可以看到,分页跳转的参数默认是get方式获取。那现在我们就可以使用get方式来提交表单并在后台用get获取查询条件。经过测试,多条件查询是翻页一切正常,测试成功。
但现在我们既然用了post方式来获取条件,那是不是可以把分页类中分页跳转的参数获取方式改成post呢?经过测试,结果失败,在翻页时查询条件还是丢失。那就是说这条路行不通,就再换一个方法。如下图所示:

可以看到,我把接收到条件通过urlencode编码然后赋值给每一个接收到的条件。
打开php手册查看urlencode这个函数

如上图所示,urlencode函数将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
然后通过和tp3.2.3分页类中分页跳转参数的获取方式对比发现,这样子的语法是正确的。经过测试,在选择查询条件点击查询后,翻页一切正常,测试成功。
以上就是多条件查询时,跳转分页我所遇到的问题和解决办法。
网友评论