Select : selected qui ne fonctionne pas ????
fred
-
CH4NCE Messages postés 628 Statut Membre -
CH4NCE Messages postés 628 Statut Membre -
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 ?!!
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"
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"
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...
Si ce n'est pas le cas, il ne peut pas choisir la valeur désirée...
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
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
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é
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.
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.
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
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
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
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
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
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...)
<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..
<?
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..
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
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
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> ?
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> ?
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.
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 ?
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 ?
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 ???
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 ???
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
Merci
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.
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.
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" ?????
........
$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" ?????
Je UP désolé mais j'ai surement la réponse à ce problème.
Remplace les :
Par des :
Remplace les :
<option value="[...]">[...]</option>
Par des :
<option name="[...]">[...]</option>
<option selected> <option selected="selected"> <option selected="">http://www.w3schools.com/html5/att_option_selected.asp
Ceci n'est valable que pour le HTML et non pas pour le XHTML.
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