2011-04-02 156 views
2

我有HTML和PHP代碼PHP/HTML表單提交

<form name="addaserver" method="post" action="addaserver.php"> 
    <p>Server Name<form method="post"> 
    <input name="servername" type="text" /></form> 

    <p>Description<form method="post"> 
    <input name="description" type="text" /></form> 

    <p>Server IP<form method="post"> 
    <input name="ip" type="text" /></form> 

    <p>Tags (ex: &quot;pvp, economy, fun&quot;)<form method="post"> 
    <input name="tags" type="text" /></form> 

    <form method="post"> 
     <input name="submitserver" type="submit" value="submit" /></form> 
    </p> 

和 (addaserver.php)

$servername=$_POST['servername']; 
$desc=$_POST['description']; 
$ip=$_POST['ip']; 
$tags=$_POST['tags']; 

很顯然,我試圖從表單中的數據.. 。但是當我點擊「提交」時,它只是重新加載表單所在的頁面。這可能只是一些簡單的錯誤,但我無法弄清楚什麼是錯的d:

回答

4

你應該定義只有一種形式,而不是爲每個輸入:

<form name="addaserver" method="post" action="addaserver.php"> 
inputs, inputs, inputs, submit 
</form> 
+0

Gotcha。謝謝。 – ahota 2011-04-02 21:01:25

1

你有太多的<form method="post">在您的代碼中的標籤。

您的代碼應該以<form method="post">開頭並以</form>結尾,但在兩者之間應該只有輸入字段。

您在第一個<form>標記中定義了對'addaserver.php'的操作,但提交按鈕位於另一個<form>標記之後,因此它不遵守您設置的初始目標。

1

您似乎將所有輸入元素都包含在不同的標記中。 Form標籤是表單元素的集合,當表單提交時將會提交它們的值。如果你沒有在表單上指定action屬性,它會(如你所說)重新加載頁面。因此,在上面的示例中,如果刪除輸入標籤周圍的所有標籤並將它們全部置於相同標籤下,則應該會發布信息

有關如何執行此操作的示例,請參閱http://www.w3schools.com/html/html_forms.asphttp://www.tizag.com/phpT/examples/formex.php

希望是有道理的。

1

你只需要一個表單標籤爲整個表單提交

<form name="addaserver" method="post" action="addaserver.php"> 
<p>Server Name 
<input name="servername" type="text" /></p> 

<p>Description 
<input name="description" type="text" /></p> 

<p>Server IP<form method="post"> 
<input name="ip" type="text" /></p> 

<p>Tags (ex: &quot;pvp, economy, fun&quot;) 
    <input name="tags" type="text" /> 

    <input name="submitserver" type="submit" value="submit" /></form> 
</p> 
1

你在你的表格嵌套額外的表單標籤。你只需要一個表單標籤。所有的輸入都在裏面。

<form name="addaserver" method="post" action="addaserver.php"> 
    <p>Server Name</p> 
    <input name="servername" type="text" /> 

    <p>Description<</p> 
    <input name="description" type="text" /> 

    <p>Server IP</p> 
    <input name="ip" type="text" /> 

    <p>Tags (ex: &quot;pvp, economy, fun&quot;)</p> 
    <input name="tags" type="text" /> 

    <input name="submitserver" type="submit" value="submit" /> 
</form> 
1

試試這個:

<form name="addaserver" method="post" action="addaserver.php"> 
    <p>Server Name: <input name="servername" type="text" /></p> 
    <p>Description: <input name="description" type="text" /></p> 
    <p>Server IP: <input name="ip" type="text" /></p> 
    <p>Tags (ex: &quot;pvp, economy, fun&quot;)<input name="tags" type="text" /></p> 
    <p><input name="submitserver" type="submit" value="submit" /></p> 
</form> 
2

我看錯的第一件事是,你必須在同一個HTML兩個獨立表單標籤。

第二個幾乎沒用,因爲它沒有提供任何數據給任何目標或行動。我會重構你的HTML更像這樣並嘗試它;

<form name="addaserver" method="post" action="addaserver.php"> 
<p>Server Name<form method="post"> 
<input name="servername" type="text" /></p> 

<p>Description<form method="post"> 
<input name="description" type="text" /></p> 

<p>Server IP<form method="post"> 
<input name="ip" type="text" /></p> 

<p>Tags (ex: &quot;pvp, economy, fun&quot;) 
<input name="tags" type="text" /></p> 

<p><input name="submitserver" type="submit" value="submit" /></p> 
</form> 

也注意到我擺脫了所有的結束標籤,因爲它們也會引發問題。代碼示例中只顯示了窗體主體外部最外面的一個結束標記。