5568 sujets

Sémantique web et HTML

Bonjour,

Je m'arrache les cheveux face à une erreur toute bête.
J'essaie de mettre une balise option par défaut avec l'attribut "selected"...normal, non?
Le tout est dans une requête SQL pour trouver les option et une autre qui selectionne par défaut le type de l'article.
Mais alors que le code HTML est bon, celui ci dans le navigateur ne me le met pas par défaut et reste sur la première option...
mon code:
<select name="select">
		<option value="1">Research publications</option>
		<option value="2">Press</option>
		<option selected value="3">Official Reports</option>
		<option value="4">Policy / NGOs / Civil Society documents</option>
		<option value="5">Events</option>
		<option value="6">Videos</option>
	</select>


Merci par avance pour votre attention et aide! Smiley smile
Modifié par hophop (17 Apr 2012 - 23:05)
Salut dans le code que tu nous donnes aucune balise <option> n'a d'attribut :

selected="selected"


Donc forcement le navigateur sélectionne la première ligne du <select>... si tu as un requête PHP qui génère ta liste d'option montre nous la. Smiley cligne
Merci de me répondre aussi vite!
Il me semblait qu'en HTML 5 il suffisait de mettre selected...
Peu importe ta façon ne fonctionne pas non plus...argh.
Voilà le type de ma requête:

while ($list = $doc_article->fetch()){
	if($d['id'] == $list['docs_id']){
		echo '<option selected="selected" value="'.$d['id'].'">'.$d['name'].'</option>';
		} 
	else{
		echo '<option value="'.$d['id'].'">'.$d['name'].'</option>';
		}
	}

$list['docs_id'] et $d['id'] correspondent donc à l'ID du type de mon document.

Merci encore
Que ce soit en HTML5 ou pas, si cela ne s'affiche pas cela dire que c'est la requête qui marche pas. Tu peux mettre la requête entière pas seulement la boucle.
Le fait est que côté code source dans le navigateur tout est bon.
Il m'affiche bien les options avec l'attribut "selected" au bon endroit...Donc je ne vois pas pourquoi ce serait dans mon code PHP.


echo '<select name="select">';

$doc = $bdd->query('SELECT * FROM docs');
     while ($d = $doc->fetch()){
	
$doc_article = $bdd->query('SELECT * FROM mapping_articles_docs WHERE mapping_id='.$a['id'].'');
					
	while ($list = $doc_article->fetch()){
		if($d['id'] == $list['docs_id']){
			echo '<option selected="selected" value="'.$d['id'].'">'.$d['name'].'</option>';
			} 
		else{
			echo '<option value="'.$d['id'].'">'.$d['name'].'</option>';
			}
		}
	}
    			
echo '</select>';


Ce qui me donne bien
<select name="select">
	<option value="1">Research publications</option>
	<option value="2">Press</option>
	<option selected="selected" value="3">Official Reports</option>
	<option value="4">Policy / NGOs / Civil Society documents</option>
	<option value="5">Events</option>
	<option value="6">Videos</option>
</select>


Argh, je ne comprends pas Smiley biggol
Je reviens après des tests sur différents navigateurs...Il n'y a que sous Firefox que cela ne marche pas!
Y'a-t'il un truc spécial pour Firefox?
merci
Salut,

Pour avoir déjà fait ce genre de chose, Firefox n'est pas différent, en revanche je mettais cet attribut en dernier !
Je ne sais pas si ça peut changer quelque chose ... (j'ai bien peur que non, mais c'est une idée ...)

Bon courage Smiley cligne
Je teste dans Firefox: ça marche, pas de souci.

À noter que Firefox retient l'état de la saisie dans un formulaire. Si tu charges ta page, choisis une autre option dans le SELECT, et fais un refresh simple (Command+R ou F5), l'option choisie s'affiche. Pour remettre à zéro la saisie utilisateur il faut forcer le rafraichissement complet avec Command+Shift+R ou Shift+F5, ou en rechargeant l'URL dans la barre d'adresse.

benenutz a écrit :
en revanche je mettais cet attribut en dernier !
Je ne sais pas si ça peut changer quelque chose ...

L'ordre des attributs HTML sur un élément n'a aucun impact.
Merci pour vos aides et votre temps à tous!

J'ai changé le mode d'apparition de mes articles et ça marche désormais...
Smiley smile