Re: [請益] 如何在submit後的頁面查詢前一頁的form …

看板PHP作者 (請勿忘記密碼)時間18年前 (2007/12/27 13:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/9 (看更多)
※ 引述《Alwayswithu (等待幸福)》之銘言: : 【使用平台】 : PHP+MySQL : 【狀況】 : 我希望寫一個頁面(假設他叫query.php), : 裡面可以有很多種不同的查詢方式(所有有很多不同的form), : 然後我會把所有的查詢導到同一個頁面下(假設他叫result.php)。 : 而這個時候,我需要有一個index來判斷該用哪一種查詢的指令。 : 【已知方法】 : 目前我知道的方法是在query.php使用session/cookie/hidden的input等方式, : 來暫存一個index,再到result.php中去接這個值來進行判斷。 : 但我覺得這樣的方法有點笨, : 因為這樣變成有幾個form就要有幾個hidden的input(or session/cookie)。 : 【我的問題】 : 我目前用想的覺得比較好的方法應該是在result.php中直接判斷從query.php傳來 : 的form id,再依照這個id在query.php下switch指令。 : 但我卻一直找不到可以查詢前一頁傳過來的form id的函式, : (就像是javascript中的document.form.id.value的玩意兒) : 所以想問問大家,有沒有人知道要怎麼查詢從前一頁傳過來form id呢? Submit按鈕上面可以加上name屬性,送出表單的時候會把 這個按鈕當成一個欄位把值送出去。透過判斷是哪個submit 按鈕被按下,就可以判斷是哪個表單被送出: <form name="form1"> ... <input type="submit" name="f1" ..... /> </form> <form name="form2"> ... <input type="submit" name="f2" ..... /> </form> query.php : 沒辦法直接用switch來判斷,但是可以用 if(isset($_POST['f1'])) { ..... } 或者 $form_id = 0; // 得先知道$i的上限。 // 或者設定一個夠大的數字也行, // 反正找到了id就會跳出迴圈。 for($i = 1; $i <= 10; i++) { if(isset($_POST['f'.$i])) { $form_id = $i; break; } } switch($form_id) { case 1: // Form 1 submitted. break; case 2: // Form 2 submitted. break; case 0: default: die('No such a form.'); } 當然,在每個表單裡面放一個隱藏欄位意思也是一樣的, 只是submit按鈕是本來就會有的,利用這個按鈕來判斷 至少不用在表單裡面增加隱藏欄位。 用cookie的話得用一些JavaScript判斷是哪個表單被送出 然後把id存入cookie然後在query.php去判斷cookie值, 這繞太大圈了。而且還得考慮萬一使用者不吃cookie的問題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.153.19
文章代碼(AID): #17SpdtHu (PHP)
討論串 (同標題文章)
文章代碼(AID): #17SpdtHu (PHP)