2012-06-21 76 views
0

我有可能在一個頁面上有兩個自我提交表單。如果是,我該如何爲每個表單分配不同的代碼塊?有兩個自我提交表格

+1

什麼是「自我提交表單」? –

+0

@EmilVikströmProbaply action =「」? – Bono

+0

@Bono是的。正好 – Srivathsan

回答

1

有兩個不同的值隱藏的輸入被放置在一個代碼。

<form action="" ...> 
<input type="hidden" name="form_no" value="0"> 
... 
</form> 

<form action="" ...> 
<input type="hidden" name="form_no" value="1"> 
... 
</form> 

在服務器端的$_REQUEST['form_no']


或者基礎上的不同,你也可以將其添加爲名稱參數提交元素。

<input type="submit" name="form0"> 

使用isset($_REQUEST['form0'])來區分。


做的另一種方法是添加一個GET參數來區分

<form action="<?php echo $_SERVER['PHP_SELF'];?>?form_no=0" ...> 
... 
</form> 

<form action="<?php echo $_SERVER['PHP_SELF'];?>?form_no=1" ...> 
... 
</form> 

使用$_GET['form_no']區分。

0

爲您的第一個表單form_one命名,第二個表單form_two。

<?php 
if (isset($_POST['form_one'])) { 
    // First form was submitted 
} 

if (isset($_POST['form_two'])) { 
    // Second form was submitted 
} 
?> 
0

兩種形式可以通過給他們不同的名字,並保持他們的目標_blank

0
<form action="action.asp" method="get"> 
    First name: <input type="text" name="fname" /><br /> 
    Last name: <input type="text" name="lname" /><br /> 
<input type="submit" name="submit1" value="Submit" /> 
</form> 

<form action="action.asp" method="get"> 
    First name: <input type="text" name="fname" /><br /> 
    Last name: <input type="text" name="lname" /><br /> 
<input type="submit" name="submit2" value="Submit" /> 
</form> 

<?php 

if(isset($_GET['submit1'])){ 
// first form was submitted 
} 

if(isset($_GET['submit2'])){ 
// second form was submitted 
} 
?> 

每種形式在這個例子中指定了不同的腳本,但請記住,你可以簡單地使用相同的PHP文件的兩個動作,指定的代碼不同的塊爲每個表單(這是上面的PHP的一部分)。

有人可能會有更好的答案,但這種方法在過去很好。

+0

我有一個疑問。你在動作部分說兩個不同的名字。他們正在提交兩個不同的頁面。那麼這將如何工作? – Srivathsan

+0

我編輯了我的答案;我認爲這是你想要的 – Don