5568 sujets

Sémantique web et HTML

Bonjour, j'ai lu qu'il était possible de nommer de la même manière plusieurs champs d'un même formulaire en utilisant l'attribut <name>.

Par exemple dans le cas d'un système de vente en ligne, d'avoir un <fieldset> adresse de facturation et un autre adresse de livraison:

exemple :

<fieldset>
			<legend>Coordonnées de facturation</legend>
			<p>
				<label for="nom">Non :</label>
				<input type="text" name="nom" />
			</p>
			<p>	
				<label for="prénom">Prénom :</label>
				<input type="text" name="prénom" />
			</p>
			<p>	
				<label for="adresse">Prénom :</label>
				<textarea name="adresse" rows="8"></textarea>
			</p>
			<p>	
				<label for="cp">Code postal :</label>
				<input type="text" id="cp" name="cp" />
			</p>
			<p>	
				<label for="ville">Ville :</label>
				<input type="text" id="ville" name="ville" />
			</p>
			<p>
				<label for="pays">Pays</label>
				<select id="pays" name="pays">
					<option value="1">France</option>
					<option value="2">Italie</option>
				</select>
			</p>
		</fieldset>

et ensuite le même mais pour les adresses de livraison..


Donc je me demande si j'ai bien compris car je ne vois pas trop ensuite comment récupérer le retour du formulaire et faire la distinction entre les deux.

l'id pourrait t'il jouer un rôle dans cette histoire, ou me suis-je tous simplement trompé ?

Merci d'avance de vos réponses.

(edit=ElMoustiko)J'ai ajouté des tag [ code] [/code] (en bas de la zone de saisie du message) pour clarifier tout ça, pense à le faire la prochaine fois, merci Smiley cligne (/edit)
Modifié le 14 Nov 2004 - 16:32
Je suis pas certain d'avoir compris la question (la tete dans le pathé), mais il y a des choses qui ne vont pas dans le code, notament avec l'utilisation des <label>

l'attribut "for" de label doit renvoyer à un id d'un champ de formulaire, par exemple :

<label for="nom">Votre nom</label>
<input type="text" name="nom" id="nom" />


Le name sert en fait uniquement pour la gestion dynamique via un langage coté serveur des données du formulaires.

Ce qui est bizar c'est que tu le fais correctement à certains endroit et pas à d'autre :S
oui, en fait je bricole sur le for depuis cet aprèm... mais j'ai bien saisi que le label est associé à l'id.. çà sous entends que le champs id est obligatoire ?

Donc pour allé plus loin dans le résonnement, si l'id est obligatoire, pourquoi utiliser en plus name ?

Si j'ai bien compris name sert quant à lui à récupérer les valeurs issus du form ?

Donc id et name sont obligatoires sinon le formulaire ne sert à rien...

donc je me demande juste si je n'ai pas la bérlu car si je me souviens bien avoir lu que seul id devait être unique... sa sous entend que name n'est pas obligatoirement unique....

donc (hé oui, encore un donc) si il deux champs sont nommé de la même manière je me demande bien comment faire la différence en traitent le formulaire...

Désolé pour l'exemple...
Alors id doit etre unique, enfin la VALEUR de l'id doit etre unique, c'est à dire que tu ne peux pas avoir 2 fois id="chose" par exemple.

Tu dois aussi spécifier name ET id dans ton formulaire en vue d'un traitement des données coté serveur, parceque ces données sont récupérées via le name du champs.
Par ailleurs, tu n'es pas obligé de donné la même valeur d'id et de name, mais c'est possible
Par exemple

<label for="machin">Le machin</label>
<input type="text" name="un_truc" id="machin" />

<label for="machin">Le machin</label>
<input type="text" name="machin" id="machin" />

Ces deux codes sont valides et fonctionnels, c'est juste que name est différent et donc que la récupération (via PHP par exemple) ne se fera pas avec la même variable.

Si j'ai bien compris ton problème, tu as 2 attributs "name" avec la même valeur ??? là ce n'est pas très logique, comment veux tu que tu script de gestion des données fasse la différence !

-edit-
Ahh oui je disais tu dois spécifier id ET name, seulement si tu utilises les label avec l'attribut for bien entendu (ce qui est recommandé d'ailleurs).
label sert à associer un intitulé textuel à un champ et le click sur le label met le focus sur l'élément associé (association avec for et id), par exemple si tu click sur le <label for="nom"> la souris se place direct dans le champs associé <input ... id="nom" />
Modifié le 14 Nov 2004 - 16:23
Bon ben çà confirme ce que je pensais... j'ai la bérlu ou j'ai mal compris le texte que j'ai lu.


Donc il faut une valeur pour l'id si je souhaite utiliser label for et un name différent pour chaque champs afin de le traiter normalement coté serveur...

bon, ben merci j'y retourne.
a écrit :
Je suis pas certain d'avoir compris la question (la tete dans le pathé)


Tu reviens du cinéma ?! Smiley biggrin
juste une dernière question, la norme ne dis rien à propos de la façon de nommer un champs en utilisant <name> ?

est t'il autoriser d'écrire çà :

<input type="text" name="adresse email" id="email" />


donc de mettre un espace dans la valeur ? ou des majuscules ?

merci
Modifié le 14 Nov 2004 - 16:50
A priori c'est possible, mais là c'est au niveau du langage de traitement des données qu'il faudrat vérifier que ça marche.

Pour être certain que tu as bien compris :
tu peux donner la même valeur à name et à id (par exemple name="email", id="email")

@an.archi > non je reviens du pays des songes (*ahem*) Et pis pathé j'en ai plus qu'un par chez moi, ces salaud ont fermé le 2eme, me voilà obligé d'aller à UGC grrrr grrr le porte feuille n'est pas content, enfin tout le monde s'en fout Smiley biggrin
non non, en s'en fou pas.... perso j'suis accro au ciné, j'ai monté un site sur le réalisateur John McTiernan avec des potes journalistes .. (mon premier en ASP) j'epére le refondre un jour 100% aux standards.. car la c'est même pas la peine...

pas de blème pour le coté script j'utilise ASP.. c'est super maléable... y'a pas de souccis de ce coté la..

merci

A+ Smiley smile
Modifié le 14 Nov 2004 - 17:15