Re: [請益] 如何在submit後的頁面查詢前一頁的form …
※ 引述《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
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
154
159