5568 sujets

Sémantique web et HTML

Bonjour à tous,

Je suis en train de créer un formulaire. Lorsqu'il y a des erreurs, j'ai mis un lien de retour, et je voudrais que les informations déjà saisies soient retenues, pour éviter de tout remettre à chaque fois.

Pour les champs <input>, pas de problème, mes pages étant en php j'ai simplement mis les valeurs dans l'attribut value. Mais je n'arrive pas à retenir les choix sur les listes déroulantes, les boutons radio ou les checkbox. J'ai fait quelques recherches et j'ai trouvé l'attribut defaultselected, seulement il ne fonctionne pas chez moi, peut-être il s'agit de Javascript ? Mais je voudrais éviter d'utiliser le JS. Je ne trouve pas le même système que pour <input value="...">.

J'espère que j'ai été clair ? Merci d'avance pour vos réponses.

Jarodd
Modifié par Jarodd (09 Apr 2006 - 19:33)
Bonjour,
Cette réponse n'est qu'une piste, une idée qui m'est venue ; je ne l'ai pas testée. Imaginons un bout de formulaire :

J'aime les :
bonbons [ X ]
gâteaux [ ]

Ce sont des cases à cocher, la case "bonbons" est sélectionnée, donc son code doît être :

bonbons : <input alt="" type="checkbox" name="C1" [#orange]checked="checked"[/#] /><br />
Donc, checked="checked" va cocher la case.

On repart du bout de formulaire, mais on ne pré-coche pas les cases :

J'aime les :
bonbons [ ]
gâteaux [ ]

Ensuite, tu voudrais que les cases cochées le reste si le visiteur revient en arrière. Donc, il faudrait récupérer une variable qui permette d'écrire checked="checked". Le balisage donnerait :


<input alt="" type="checkbox" name="C1" 

	[#red]<?[/#]
	if [#darkblue](isset([/#][#blue]$_POST[/#][#darkblue][[/#][#red]'C1'[/#][#darkblue]])) {[/#]
    		[#blue]echo[/#] [#red]'ckecked="checked"'[/#][#darkblue];
		}[/#] 
	[#red]?>[/#]

/><br />

Donc : si on a une variable C1, la case était cochée dans les données envoyées, alors on écrit checked="checked" qui va la recocher.

Smiley murf ?

<edit> Saletés de fôtes !! </edit>
Modifié par Smiley neko (09 Apr 2006 - 20:15)
Alors cela fonctionne parfaitement pour les checkbox et les boutons radio, merci Smiley neko ! Smiley biggthumpup

Par contre je bute encore sur les listes déroulantes. J'ai essayé par la même balise checked="checked", cela ne fonctionne pas. Je vais essayer en mettant du php à chaque balise option, mais cela risque d'alourdir le fichier Smiley ohwell
Je crois que c'est selected="selected" pour les listes déroulantes.
<edit> C'est bien ça.

Pour ta seconde question, je ne sais pas. Mais si tu dois dupliquer le code pour chaque ligne, ça ne va pas trop alourdir la page. D'après un test, six occurences du code pèsent moins de 700 octets.

</edit>
Modifié par Smiley neko (09 Apr 2006 - 19:22)
Oui mais faut-il que je mette les vérifications php à chaque ligne (<option>) ? Ou bien il y a un autre moyen moins "gourmand" ?
Cela marche :

<option value='01' <?php if (isset($_POST['departement']) AND $_POST['departement'] == '01') {
		echo "selected='selected'";}?> >01</option>


A répéter à chaque ligne en changeant les valeurs Smiley smile

Merci Neko ! J'édite le Résolu.
De retour Smiley ravi

Savez-vous si le système est utilisable avec un champ <input type="file" /> (upload d'un fichier) ? Le rappel de la balise 'name' ne fonctionne pas.

Merci d'avance Smiley lol