作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: [请益] 如何在submit後的页面查询前一页的form …
时间Thu Dec 27 13:36:54 2007
※ 引述《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