最近遇到一个非常棘手的问题,也是因为刚入手thinkphp。在做项目的过程中,因为需要非常多的查询条件,如果以get方式提交表单的话,会因为url长度限制而报错,所以必须使用post方式提交表单数据,但是在分页的过程中,遇到了问题,因为thinkphp自带的分页是以a标签的形式,进行下一页的,这样查询条件就没有传入后台,导致点击下一页的时候,出现空白。
查看了一下thinkphp官方手册,说了如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,具体说明如下图所示:
但是我对手册有一处不解,既然是以通过a标签分页,这样$map(即查询条件参数)中的参数值是怎么传到后台的,看不懂,难道是我太水了?求大神指导
我再网上也试了其他的一些方法,比如用$_REQUEST方式获得参数,说是包括了post和get方式的传值,尝试了几次,结果还是失败了。还有其他的方法,看了一下都不靠谱啊,求大神帮忙。。。
应该可以用js 重写链接的click事件, 用ajax postback把参数传回去吧
恩,这个方法昨天晚上也考虑了这种方法,尝试的时候js报错,今天早上又试了一次,结果成功,谢谢~
具体的改写方法如下:
// 分页
$('#pageBar a').click(function(){
var tmpHref = $(this).attr('href');
tmpHref = tmpHref.replace(/\/selCon\//,"");
$("#form").attr("action", tmpHref);
$("#form").submit();
return false;
});