Re: [請益] 參數的傳遞問題

看板PHP作者 (寶貝豬)時間16年前 (2009/10/31 16:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
可用session來記錄翻頁的參數, 以下提供的做法僅供示意參考: <?php //開啟session: session_start(); // page_no 及 direct 初始值指定: if(!isset($_SESSION['page_no'])) $_SESSION['page_no'] = 1; // page_no 是1-base, 1就是代表頭頁. if(!isset($_SESSION['direct'])) $_SESSION['direct'] = 'DESC'; if(!isset($_SESSION['page_size'])) $_SESSION['page_size'] = 10; // 若 page_no 及 direct 有新值傳入, 則session的記錄值也要更新. // (若無, 當然就無需變動) if(isset($_REQUEST['page_no'])) $_SESSION['page_no'] = $_REQUEST['page_no']; if(isset($_REQUEST['direct'])) $_SESSION['page_no'] = $_REQUEST['direct']; $sql=sprintf(" select * from myrecords where 1=1 order by %s %s limit %d,%d ", 'id', strtoupper($_SESSION['direct']), ($_SESSION['page_no']-1)*$_SESSION['page_size'], $_SESSION['page_size'] ); //撈資料 //套表輸出 ?> 這樣的話, 只有在要換頁或是換排序方向時才需要在url上指定, 不然的話, 只會一直沿用舊值來顯示頁面. 例: hxxp://bobju.cxm/a.php?page_no=5&direct=DESC //以倒序排資料,顯示第5頁. hxxp://bobju.cxm/a.php //由於沒有指定page_no 及 direct, 所以沿用 //存在session當中的 page_no 及 direct 值, //仍然以倒序排資料, 顯示第5頁. 偏好每次翻頁都採用以 url 來傳參數的理由當中, 其中之一是為了在web server 的日誌上留下記錄, 這從系統維護的角度來看, 有其意義在. 若用session來做的 話, 那就得自己在程式當中另外設計了. ※ 引述《rs6000 (小叮噹)》之銘言: : 小弟目前自修PHP練習時發現一點問題想請教板上的前輩們 : 問題是這樣的,我照書上的範例做一個留言板 : 裡頭有分頁與排序的功能(可選日期或點閱數) : 這兩個功能單獨用的時後是正常的。 : 但是無法合在一起用 : 尤其是點到其他分頁的時後再去按排序的功能 : 就會跳回第一頁。 : 由於書上的範例原本就有這個BUG。 : 我想應該是參數的傳遞上有缺陷 : 在我直接在網址列自行加上參數 : 網址:index_pub.php?page_num=2&sort=coun desc : 這樣才能在分頁上做排序 : 要怎樣才能直接在程式中控制 : 跳到其他分頁時還能做排序的功能而設定不會跑掉呢? : ps:板上有人買過文魁出版羅毅志先先寫的 PHP5+MySQL互動式網頁設計嗎? : 書上的範例與光碟的檔案都無法執行...Orz : 我才看到第4章就花不少時間除錯~程式才能跑 >"< ※ 編輯: bobju 來自: 58.115.151.184 (10/31 18:40)

10/31 21:26, , 1F
感謝大大的指點~
10/31 21:26, 1F
文章代碼(AID): #1Aw_ILYZ (PHP)
文章代碼(AID): #1Aw_ILYZ (PHP)