作者Alwayswithu (等待幸福)
看板PHP
标题Re: [请益] 如何在submit後的页面查询前一页的form …
时间Thu Dec 27 14:20:33 2007
感谢MrMarcus的分享~
不过我还是比较想问有没有办法得到该form的名称。
我的逻辑是这样的,假设我在query.php中有五个form,我想把五个form的名称都用不同
的名称,假设他是form1~form5。
而我在result.php的页面中,假如有办法得知资料是从什麽名字的form中得到的,
我就可以直接依照不同的form来进行不同的动作,比方说
if ("表单名称"=="form1")
{
// 进行SQL Select指令A
}
if ("表单名称"=="form2")
{
// 进行SQL Select指令B
}
//......and so on.....
我觉得这麽做的好处是可以让变数减少,让程式变精简一点,然後系统的效果不变。
而MrMarcus同学提到的
<input type="submit" name="f1" ..... />
确实是个不错的方法。
只是在submit的选项中,value会显示在button上,所以我就无法让所有的
button都显示一样的文字(比方说search),这点也不太符合我的需求。
所以还是比较想知道有没有什麽方法,可以知道有没有办法从result.php中得到
query.php所传过来的表单名称。感觉上这样会比较简单:)
(虽然现在我好像把问题弄复杂了XD)
※ 引述《MrMarcus (请勿忘记密码)》之铭言:
: ※ 引述《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: 203.188.207.1
※ 编辑: Alwayswithu 来自: 203.188.207.1 (12/27 14:21)