[閒聊] 分頁中取得第一頁所選擇的checkbox資訊
小弟最近在寫一個網頁,其功能是要在頁面上選擇過濾條件,
然後再以分頁方式顯示過濾後的資訊。
分頁的部份很容易,依照隨便一本 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