2011-07-29 70 views
1

我在一個頁面有2個或更多的表單。像這樣:php表單,如何在一個頁面中使用多個表單?

<form method="post" > 
    <table border="0"> 
    <tr> 
     <td>&nbsp;</td> 
     <td>&nbsp;</td> 
    </tr> 
    </table> 
<input type="submit" value="get" /> 
</form> 

<form method="post" > 
    <table border="0"> 
    <tr> 
     <td>&nbsp;</td> 
     <td>&nbsp;</td> 
    </tr> 
    </table> 
<input type="submit" value="get1" /> 
</form> 

表格是相似的但內容不同。

發生什麼事是當我點擊一個窗體上的get按鈕時,所有其他窗體也會被觸發。

有沒有一種方法來區分表單,以便當我點擊一個按鈕時,只有那個按鈕被觸發的窗體?

編輯:如果我按get1get形式獲取也引發

感謝

回答

5

只應該觸發包含您的提交按鈕的表單。你確定你在HTML中正確地關閉了兩個表單嗎?

你能發佈一個鏈接到頁面或粘貼所有的HTML嗎?

+0

是的,你是對的。即時通訊愚蠢,我有我的HTML搞砸了。謝謝 – Patrioticcow

2

您不能提交不止一種形式,你的第一種形式就是可能錯誤地關閉,這將導致你麻煩

2

如果你的代碼設置像...

if(!empty($_POST)) {} 

然後它會看起來像被提交兩種形式,但實際上你只能從實際提交表單訪問數據。如果您在兩個提交按鈕上輸入名稱,您可以測試$_POST['submitButtonName']

您可以使用此頁面輕鬆查看差異。

http://pastie.org/pastes/2290937/text

0

希望這個代碼將幫助你。 如果你想提交特定的 窗體使用JavaScript或jQuery。 在我的情況下,我會選擇jQuery。 這是我解決方案的例子。 您將需要更改formid和objectid。

$("#buttonid").click(function() { 
    $("#formid").submit(); 
}); 
0

簡短的回答是,你真的只有一個窗體在你的頁面上。

您應該爲每個表單提供一個名稱和ID以唯一標識它們。

<form name="form1" id="form1" method="post" action="">是讓每個表單都不同的方法。這很重要,因爲您可能需要提交按鈕以外的其他控件來提交表單。考慮這個代碼在下拉列表中的OnChange事件:

「document.forms.form1.submit()」

這將使形式儘快的值在下拉列表中挑選提交。要使高級功能正常工作,您需要知道您的表單名稱是什麼。表單的ID可用於訪問它使用document.getElementById('form1')

最後,不要使用表來顯示您的表單。使用CSS。

我希望這可以幫助別人。

相關問題