web-dev-qa-db-fra.com

plusieurs balises de formulaire dans la page ou une balise de formulaire?

Je viens de commencer HTML5 et je veux savoir en général si nous devrions utiliser une balise <form> par page Web ou plusieurs balises de formulaire.

Cela dépend peut-être de la situation, mais voici deux scénarios différents:

  1. Un formulaire d'inscription
  2. Une page d'accueil avec plusieurs sous-formulaires: Login, Join Mailing List, etc.

Est-il mauvais d'avoir une balise de formulaire à l'intérieur d'une autre ou est-ce acceptable selon les normes?

Merci

Edit Pouvez-vous s'il vous plaît expliquer d'une manière simple quel est le but de la balise de formulaire?

17
haansi

J'ai l'impression que vous avez déjà répondu à vos questions.

  1. Un formulaire d'inscription = une balise de formulaire.
  2. Plusieurs formulaires = plusieurs balises de formulaire.

Ne les imbrique pas.

MODIFIER

Les balises de formulaire sont destinées à contenir une variété de champs (balises d’entrée) que vous allez éventuellement transmettre à une URL cible à l’aide d’une requête GET ou POST.

Prenez ce formulaire de connexion, par exemple:

<form action="login.php">
  <input id="name" type="text" name="name">
  <input id="passwd" type="password" name="passwd">
  <input type="submit" value="Login">
</form>

Cela a un identifiant, un mot de passe et un bouton d'envoi. Lorsque vous cliquez sur le bouton "Connexion" (type = "submit"), le formulaire enregistre ces informations et les envoie à une autre URL (dans ce cas, "login.php", et cette URL traite les informations en conséquence , connectez-vous, affichez captcha).

22
Phil

Il n'y a aucune raison pour que vous ne puissiez pas avoir plusieurs formulaires sur une seule page. Vous ne pouvez tout simplement pas imbriquer des formulaires, car ils ne sont pas en mesure d'identifier les champs correspondant à quoi.

Sur le plan conceptuel, si vous souhaitez que les informations de deux formulaires occupent la même section ou le même espace sur votre site (par exemple, si vous combinez vos formulaires d’inscription et de liste de courrier électronique), utilisez un seul formulaire et triez-les. les informations de la variable POST à l'autre extrémité. Tant que vous nommez les choses d'une manière qui a du sens, vous ne devriez même pas vouloir que les formulaires imbriqués y parviennent.

Modifier:

Pour mieux répondre à votre question, une balise de formulaire, dans son cas d'utilisation le plus élémentaire, est utilisée pour soumettre des données à une URL. L'URL à laquelle vous choisissez de soumettre un formulaire reçoit généralement ces données et les traite d'une manière ou d'une autre avant de prendre des mesures sur ces données, telles que le stockage des données dans une base de données ou la création d'un nouvel utilisateur en fonction d'un nom d'utilisateur et d'un mot de passe donnés.

9
Chiubaka

Mettre des formulaires dans des formulaires n'a pas de sens, comment différencieriez-vous les champs dans chaque formulaire maintenant? Font-ils partie de la forme maîtresse? La forme de l'enfant? Tous les deux?

La meilleure pratique consiste à séparer les formulaires de chaque domaine dont vous aurez besoin de lire les commentaires. Si vous avez un espace de connexion, faites un formulaire pour cela. Si vous avez également une zone de commentaire sur cette page, un formulaire séparé doit gérer cet événement.

2
mash

Oui, nous pouvons utiliser plusieurs balises dans une même page HTML. Parfois, nous devons soumettre deux données distinctes à partir d’une seule page HTML. Pour ce faire, nous devons utiliser plusieurs balises. Nous utilisons une balise pour envoyer nos données à un servlet ou à un JSP particulier (dans le cas de Java). Nous fournissons des informations sur le client à travers le. il y a un attribut à l'intérieur de la balise appelé action = "#". Nous avons défini le nom particulier de la servlet où les données doivent se trouver. Ainsi, nous fournissons des données d’un client (HTML) à une servlet (serveur). Ensuite, le servlet manipule les données fournies, comme pour les insérer dans la base de données. Le code suivant peut être une aide à comprendre. Ici, deux balises sont utilisées pour deux tâches différentes et elles seront également gérées par deux servlets différentes.

<%@ page language="Java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Registration | Badhon</title>
<link rel="stylesheet" type="text/css" href="registration.css">
</head>


<body background="images/registration.jpg">



	<div class="title">
		<h1>Registration</h1>
	</div>

	<div class="container">

		<div class="left">
       <div><h1>Choose an image (300*300)</h1></div>
   
   
   /* First Form tag ---------------------*/
      <form name="fileform" method="post" action="uploadImage" enctype="multipart/form-data">
				
				<br> <label for="photo"> Portrait Photo: </label> <input
					type="file" name="photo" size="50" placeholder="Upload Your Image"
					required /><br>
				<br> <input type="submit" value="Save">
			</form>
      
 
 /* End of First Form Tag---------------------*/
	 
   
   </div>


		<div class="right">
			<div class="formbox">
				
  /* Second Form tag------------------ */      
        <form action="DonarRegister">
					<p>Name</p>
					<input type="text" name="name" placeholder="Name">
					
					<p>Username</p>
					<input type="text" name="username" placeholder="User_name">
					
					<p>Password</p>
					<input type="Password" name="password" placeholder="..........">
					
					<p>Blood Group</p>
					<input type="text" name="bloodgroup" placeholder="O positive">
					
					<p>Age</p>
					<input type="number" name="age">
					
					<p>Mobile Number</p>
					<input type="text" name="mobilenumber" placeholder="......">
					
					<p>email</p>
					<input type="text" name="email" placeholder="......">
					
					<p>Address</p>
					<input type="text" name="address" placeholder="Village/Thana/District"> 
					<input type="submit" name="" value="Register">
				    
				   <p> <h5>Have already an account !! Then <a href="login.jsp">just login</a></h5></p>



</form>
/* End of Second form tag ----------------- */ 
 
 
			</div>
		</div>
	</div>
</body>
</html>

base de données et ainsi de suite.

0
Noman_ibrahim