5568 sujets

Sémantique web et HTML

Hello à tous !
XHTML voulant abandonner à terme l'attribut name et le remplacer par l'attribut id, il est recommandé de ne plus utiliser name.

Seulement, dans un formulaire, lorsqu'on a un groupe de boutons radio, pour les faire appartenir au même groupe, on doit leur donner la même valeur pour l'attribut name. Or, l'attribut id n'accepte qu'une seule même valeur par page...

Donc ma question : Que faut-il faire ?
1° Outrepasser les règles de l'attribut id et donner la même valeur à chaque bouton radio d'un groupe
2° Tout de même utiliser l'attribut name et donner une valeur différente à chaque attribut id

Merci d'avance Smiley smile
Modifié par superjun (16 Oct 2006 - 22:40)
superjun a écrit :
XHTML voulant abandonner à terme l'attribut name et le remplacer par l'attribut id, il est recommandé de ne plus utiliser name.

À ma connaissance, c'est faux.
Je cite Openweb (source) :
a écrit :
Ajoutons que l'attribut "name" des éléments a, applet, form, frame, iframe, img, and map est déprécié et ne peut plus être employé en XHTML.

On peut donc toujours employer l'attribut name pour les éléments de formulaire, en dehors de form.

Donc :
1 - Pour le nom des valeurs envoyés par le formulaires (en GET ou en POST) : on utilise l'attribut name.
2 - Pour identifier une sous-partie d'un document XHTML (pour faire un lien vers cette sous-partie, ou pour lui appliquer un style, ou pour la sélectionner en javascript), on utilise l'attribut id.

Dans le cas d'une liste de boutons radio ou de checkbox, on utilisera donc name. Et on pourra donc avoir la même valeur pour chaque input de la liste.


PS : suis pas un pro des formulaires, donc si quelqu'un veut confirmer/infirmer...
mpop a écrit :
PS : suis pas un pro des formulaires, donc si quelqu'un veut confirmer/infirmer...

Hello Smiley smile !

Je confirme pour l'id mais à ma connaissance l'attribut name de la balise form ne servait qu'au javascript (à l'époque Smiley vieux !) et à différencier plusieurs formulaires sur une même page.
Pour récupérer les variables POST et GET on n'utilise que leur nom (sans autre identifiant).

@+

[*EDIT]
Ce lien semble le confirmer...
[/EDIT]
Modifié par Heyoan (16 Oct 2006 - 22:41)
on peut tout à faire faire ceci :


<fieldset><legend>Indiquez votre sexe :</legend>
<p><label for="sexe_M">Masculin</label><input type="radio" id="sexe_M" name="sexe" value="M"></p>
<p><label for="sexe_F">Féminin</label><input type="radio" id="sexe_F" name="sexe" value="F"></p>
<p><label for="sexe_A">Alien</label><input type="radio" id="sexe_A" name="sexe" value="A"></p>
</fieldset>

l'id est unique et sert ici pour le label, mais il peut servir pour un JS ou autre...
et si le formulaire est passé en $_POST (method="post") par exemple - bien que ça soit tout aussi vrai pour GET - on récupère $_POST['sexe'] = 'M'/'F'/'A' ...
$_POST['name_input'] en fait.

Edit : correction
Modifié par Malcolm (17 Oct 2006 - 13:39)
Je pense qu'il y a une petite erreur dans ton code. Ce serait plutot ça non ? :


<fieldset><legend>Indiquez votre sexe :</legend>
<p><label for="sexe_M">Masculin</label><input type="radio" id="sexe_M" name="sexe" value="M"></p>
<p><label for="sexe_F">Féminin</label><input type="radio" id="sexe_F" name="sexe" value="F"></p>
<p><label for="sexe_A">Alien</label><input type="radio" id="sexe_A" name="sexe" value="A"></p>


Sinon, merci de la précision Smiley smile
non, non, j'ai ouvert ma balise <fieldset> avant la légende ... Smiley smile

et quant au doctype, s'il s'agit d'xHTML il faut fermer les input par /> et non > (cas du doctype HTML ici, strict ou transitionnal)
Excuse-moi, j'ai mal recopié le code Smiley sweatdrop

En fait je parlais des id qui étaient les mêmes pour tous les boutons radio... (contrairement à leur label) Smiley ravi
ah oui pardon, bien vu. Un c/c trop rapide, le label for= pointant sur l'ID, on peut se douter de la valeur de ce dernier.
J'ai corrigé plus haut Smiley biggol