Select : selected qui ne fonctionne pas ????

Fermé
fred - 5 févr. 2009 à 07:24
CH4NCE Messages postés 620 Date d'inscription jeudi 7 décembre 2006 Statut Membre Dernière intervention 8 août 2013 - 23 janv. 2012 à 17:10
Bonjour,

je bloque depuis 20 minutes sur un problème qui doit être tout bête.

J'ai une boucle php qui affiche un select en fonction des résultats retournés par une table sql.
Je cherche à afficher une option par défaut dans le select, j'ai donc une condition if... etc :

Le code html retourné semble bon, mais l'option n'est pas sélectionnée par défaut !

voici le code html retourné, si vous avez une idée...


<select name="quartier">

<option value="4">Bois Blancs </option>
<option value="2">Cormontaigne</option>
<option value="10">Faubourg de Béthune </option>
<option value="6" SELECTED >Fives </option>
<option value="3">Lille Centre</option>
<option value="9">Lille Sud </option>
<option value="11">Lille-Moulins </option>
<option value="15">république</option>
<option value="12">Saint-Maurice Pellvoisin </option>
<option value="14">Vauban</option>
<option value="7">Vauban Esquermes </option>
<option value="5">Vieux Lille </option>
<option value="13">Villeneuve-d'Asq</option>
<option value="8">Wazemmes </option>
</select>


j'ai tout essayé : mettre le select avant value, après, avec ou sans espaces, majuscules minuscules, je l'ai fait des centaines de fois ce genre de conditions sur un select, mais là ça ne passe pas ?!!

24 réponses

Bonjour

Tu es probablement en XHTML et non pas HTML
en XHTML, les attributs doivent s'écrire en minuscules et ne peuvent pas être vide. Il ne faut pas écrire SELECTED mais selected="selected"
12
Merci pour les infos toto, j'ai eu le même problème que Fred et j'étais bien en XHTML et selected="selected", ca marche niquel!
0
CH4NCE Messages postés 620 Date d'inscription jeudi 7 décembre 2006 Statut Membre Dernière intervention 8 août 2013 719
21 janv. 2012 à 23:46
    <option selected>
    <option selected="selected">
    <option selected="">


http://www.w3schools.com/html5/att_option_selected.asp
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
23 janv. 2012 à 10:43
CH4NCE :
Ceci n'est valable que pour le HTML et non pas pour le XHTML.
0
CH4NCE Messages postés 620 Date d'inscription jeudi 7 décembre 2006 Statut Membre Dernière intervention 8 août 2013 719
23 janv. 2012 à 17:10
Pour xhtml
<option selected="selected">

Ceci est aussi recommandé pour html.
https://www.w3schools.com/tags/tag_option.asp
http://fr.selfhtml.org/html/formulaires/choix.htm
Quand vous voulez travailler conformément à XHTML, vous devez noter l'attribut sous la forme selected="selected".


Pour html5
<option selected>
0
As-tu bien placé ton <SELECT> dans un formulaire?

Si ce n'est pas le cas, il ne peut pas choisir la valeur désirée...
5
Bon je sais pas où vous en êtes avec ce super bug...
mais en finalement, après avoir chercher pendant quelques instants je me suis aperçu que seul les "select" sans identifiant (attribut name et/ou id) ne fonctionnaient pas avec le "selected" (ou même le selected="selected").

Une fois ces attributs rempli... cela fonctionne!

Bonne Année
4
Yes, merci, et même plus
<select name="pageId">
Ne marche pas sur firefox car pageId comporte un i majuscule, alors que
<select name="pageid">
fonctionne car tout est en minuscule...
0
Bonjour

Je t'avais demandé des arguments objectifs mais tu n'en apportes pas. Le code que tu proposes est très différent de celui que tu soumets à fred.
Ça, ça marche parce que c'est correct. Mais ce que fred avait écrit était correct aussi, ou alors montre-nous l'erreur.

Par contre, dans ton message 11 tu avais proposé
<option selected value="<?php $row[1] ?>"><?php echo $row[1] ?></option>'; 

Je te dis que
1 - il y a au moins deux fautes : il manque un echo devant ton premier $row[1] et il y a une apostrophe et un point-virgule qui traînent à la fin
2 - Même en corrigeant ces fautes, la seule différence avec le code de fred, c'est que tu as mis le selected en minuscules et avant le value. Mais Fred nous a déjà dit qu'il avait essayé ces variantes : ta proposition n'apportait rien de nouveau.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour

j'ai un souci une Parse error: sur une cette ligne si vous pouvez m'aidez car je bloque merci !!
$liste = "";
$liste .= '<select name="departement" class="liste_deroulante2" id="departement">'."\n";
for($d = 0; $d < $nd; $d++)
{
$liste .= ' <option value="'. $code_dept[$d] .'" '. if (isset($_SESSION["erreur_dpt"]) && ($_SESSION["erreur_dpt"])=="95") { echo "selected=selected"; } .' >'. htmlentities($nom_dept[$d]) .' ('. $code_dept[$d] .')</option>'."\n";
}
$liste .= '</select>'."\n";

le probleme viens du If .. je veux mettre que si cela a était choisi la liste déroulante reste sur le selected !!

Merci encore
2
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
9 févr. 2010 à 17:46
slt
je ne sais pas où vous en êtes mais je propose ce ci.
je m'excuse si ce n'est pas professionnel et svp soyez indulgent merci encore pour votre bonne compréhension
si ce n'est pas le bonne faites comme si je n'etais jamais arrivé dans la discution et continuer sans moi

<select name="ville">
<?
require("connect.php");

$result = mysql_query("SELECT id,nom FROM etage_villes order by nom") or die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{	
?>
	<option value="<? echo $row[0]; ?>" <? echo ($row[0] == $ville)?'selected="selected"':''; ?> ><? echo $row[1]; ?></option>
<?
}
?>
</select> 

juste une chose j'ai eu un peu de mal avec le HTML dans le PHP c'est le pourquoi j'ai fait ressortir le html dans la boucle (désolé encore )

cdlt
1
Merci de m'avoir aider !! j'avance ... comme je suis débutant.. j'ai adapter la code et j'ai plus d'erreur ...
0
en fait j'ai une requête qui me retourne $quartier (qui correspond à "6" dans l'exemple), ensuite lorsque j'affiche mon select, j'aimerais que le quartier sélectionné par défaut soit celui retourné par ma requête sql ("6" ici en l'occurrence...)
0
j'ai déjà essayé sans succès...
0
<select name="ville">
<?
require("connect.php");

$result = mysql_query("SELECT id,nom FROM etage_villes order by nom") or die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
echo"<option value=\"$row[0]\"";
if($row[0]==$ville){echo" SELECTED ";}
echo">$row[1]</option>";
}
?>
</select>

a priori le php est correct puisque le html retourné semble correct..
0
désolé je n'ai pas pu répondre avant.

Je veux simplement que lorsque dans la boucle on tombe sur l'id qui est similaire à ma variable $ville alors cette option soit sélectionnée par défaut...

Je ne pense pas être en xhtml... mais bien en html !

merci de votre aide
0
En html, ce que tu as écrit est correct. En tous cas, ça marche chez moi (copier/coller) .
Je ne pense pas être en xhtml.. C'est bien de le penser, mais en es-tu sûr ? Si tu as une ligne <!DOCTYPE au début de ta page, à quoi ressemble-t-elle ?
Peux-tu montrer ta balise de début de <html> ?
0
Ne perds pas de temps à essayer la proposition de 974_Vin's_974. Elle ne change rien par rapport à ce que tu fais, si ce n'est qu'elle ajoute des erreurs que tu n'avais pas faites.
0
J'ai essayé avec des en-êtes xhtml et, bien que le selected ne respecte pas les règles, ça marche quand même avec IE6 et FF3.
Plus ça va, plus j'ai du mal à croire que le code donné dans le post initial ne marche pas. Avec quel browser ?
N'y aurait-il pas une erreur (balise mal fermée, mal appairée..) ailleurs dans le document, qui aurait cette conséquence ?
Peut-on voir la page en ligne pour constater nous-mêmes ?
0
Bonjour,

je n'ai pas pu répondre avant j'était absent ce week end.
j'ai regardé les balises en en-tete, seulement <html> pas de doctype.

Le code html que je vous donne est un copié collé de la source affiché via FF....

je ne trouve vraiment pas ce qui ne va pas, peut etre devrais je rajouter un doctype ???
0
Un doctype ne devrait rien y changer. Pouvons-nous voir la page en ligne ?
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
6 févr. 2009 à 12:40
Au lieu de déconseillé les autres propositions, tu feré mieux de l'aider, moi j'ai fais un truc du même genre ça fonctionne parfaitement, alors si t'as rien à faire ... ;)

Merci
-1
Je ne veux pas être méchant, mais...
Non, tu n'as jamais fait quelque chose comme ça qui fonctionne parfaitement parce qu'il y a des erreurs dans ta proposition. Et même en les corrigeant, on arrive à quelque chose d'équivalent à ce que fred propose au départ. Donc tu ne l'aides pas, tu le fais reculer. Es-tu capable de justifier pas des arguments objectifs en quoi ton approche pourrait améliorer quelque chose ?
tu feré mieux de l'aider Je n'ai rien à prouver de ce côté là, tu le sais bien puisque je t'ai aidé toi aussi. J'ai demandé à fred des éléments pour pouvoir l'aider, et tant que je n'ai pas sa réponse je ne vais pas lui proposer n'importe quoi pour faire du vent.
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
9 févr. 2009 à 04:49
Ben explique moi pourquoi ça ça marche dans mon site alor :

........
$num = $rep['Num_service'];

$retour = '<select style="width: 320" name="Liste1" id="Liste1" size="1" onchange="remplir_form(this[this.selectedIndex].value)">';
$retour .= '<option selected value="';
$retour .= $num;
$retour .= '">';
$retour.= $libelle;
$retour.= '</option>';


Pourquoi par défault je vois bien la variable "num" ?????
-1
Je UP désolé mais j'ai surement la réponse à ce problème.
Remplace les :

<option value="[...]">[...]</option>


Par des :

<option name="[...]">[...]</option>
-1
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
29 sept. 2010 à 14:56
Bonjour,

Non non, désolé mais les option prennent bien des value et pas des name !

Xavier
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
5 févr. 2009 à 07:29
Tu veux qu'il affiche par défault, c'est a dire, à l'origine, une valeure retourné par une requete ????

-2
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
5 févr. 2009 à 07:42
OK, au lieu de ca :

<option value="6" SELECTED >Fives </option>

essaye ca :

<option selected value="6" >Fives </option>

-2