作者rick0618 (黑肉)
看板PHP
标题[闲聊] 分页中取得第一页所选择的checkbox资讯
时间Wed Jun 22 15:17:07 2011
小弟最近在写一个网页,其功能是要在页面上选择过滤条件,
然後再以分页方式显示过滤後的资讯。
分页的部份很容易,依照随便一本 php 书籍上的范例即可正常使用。
小弟我碰到的问题就是在於设定过滤条件之後,选择下一页资料就会错误。
爬了版上与网路上针对分页所提供的解答,不外乎都是使用 session 去纪录所选择的
条件,这样就可以把参数重复利用。但是这方法小弟始终参透不了,要怎样把过滤条件
透过 session 传递给下一页的功能使用?小弟最後还是放弃这个方式...不过我用了别
的方法达到我想要的结果,所以就 po 上来给有相同问题还没解决的朋友参考..
<页面功能>
1.透过页面上的 checkbox 选择要显示的条件
2.选择後能够以分页方式显示结果
<solution>
checkbox 的 form_method 使用 GET 方式传递参数
在 submit checkbox 的选项之後,利用 $_SERVER['REQUEST_URI'] 取得 submit 之後
的网址目录位址,而这个目录位址就会包含 checkbox 的选项资讯。
接着就可以将此目录位置插入程式中分页的部份,这样分页资讯中就会保留 ckeckbox 的
资讯与分页资讯。
<分页程式码片段>
这边举我自己的程式片段做例子,如果分页方式不同可能会有不同的作法..
$ThisURL = $_SERVER['REQUEST_URI'];//取得目前网址目录部份。
$URL1=split('[?]',$ThisURL);//将网址做分割,以取得 checkbox 资讯。
$URL2=$URL1[0]."?".$URL1[1];//将分割资讯重新组合成完整目录。
$page=$_GET["page"];//以GET方式取得网址中的 page 资讯。
if(empty($page))$page=1;//page为空则page=1。
echo " <a href=$URL2?&page=1>第一页</a>"."\n";//产生第一页的超连结,超连结则为
$URL2?&page=1,所以到了这边就可以将 checkbox 与 page 资讯都传送到网址内,这样
设定搜寻条件的分页功能就达成了。
if($page>1)
{
$pre=$page-1;
echo " <a href=$URL2?&page=$pre>上一页</a>"."\n";
}
if($page<$show)
{
$next=$page+1;
echo "<a href=$URL2?&page=$next>下一页</a>"."\n";
}
if ($show>=3)
echo "<a href=$URL2?&page=$show>最後一页</a>"."\n";
echo "目前在第".$page."页";
希望以上能帮助到其他遇到跟我一样问题的朋友....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.64.185.211