2011-04-02 6 views
2

J'ai le code HTML et PHPsoumission du formulaire 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> 

et (addaserver.php)

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

Il est évident que je suis en train d'obtenir les données des formulaires .. Mais quand je clique sur "soumettre", cela recharge simplement la page sur laquelle les formulaires sont. Il est probablement juste une simple erreur, mais je ne peux pas comprendre ce qui ne va pas D:

Répondre

4

Vous êtes censé définir une seule forme, pas un pour chaque entrée:

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

Gotcha. Merci. – ahota

1

Vous avez beaucoup trop <form method="post"> dans votre code.

Votre code doit commencer par <form method="post"> et se terminer par </form>, mais il ne doit y avoir que des champs de saisie.

Vous définissez une action sur 'addaserver.php' dans la première balise <form>, mais le bouton de soumission est après une balise <form> différente de sorte qu'il ne respecte pas la cible initiale que vous définissez.

1

Vous semblez inclure tous vos éléments d'entrée dans des tags différents. Une balise de formulaire est une collection d'éléments de formulaire dont les valeurs seront soumises lors de la soumission du formulaire. Et si vous ne spécifiez pas l'attribut action sur un formulaire, il rechargera (comme vous le dites) la page. Ainsi, dans l'exemple ci-dessus si vous supprimez toutes les balises entourant les balises d'entrée et de les mettre tous sous la même étiquette pour des exemples sur la façon de faire, vous devriez obtenir votre information affichée

Regardez http://www.w3schools.com/html/html_forms.asp et http://www.tizag.com/phpT/examples/formex.php.

Espérons que cela a du sens.

1

Vous avez seulement besoin d'une balise de formulaire pour la forme tout à soumettre

<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

Vous imbrication des balises supplémentaires tout au long formulaire de votre formulaire. Vous avez seulement besoin d'une étiquette de formulaire. Toutes les entrées vont à l'intérieur.

<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

Essayez ceci:

<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

La première chose que je vois mal est que vous avez deux balises de formulaire distinctes dans le même code HTML.

La seconde est pratiquement inutile car elle ne fournit aucune donnée à aucune cible ou action. Je restructurerais votre HTML pour être plus comme ceci et l'essaye; Prenez également note du fait que je me suis débarrassé de toutes vos étiquettes de forme de fermeture car elles auraient causé des problèmes aussi. Vous n'avez besoin que d'une seule étiquette de fermeture sur le segment le plus à l'extérieur du corps de votre formulaire, comme indiqué dans l'exemple de code.