Remplissage dynamique d'une liste menu en php
Résolu
konnors
-
konnors -
konnors -
Bonjour à tous,
Je suis un assezrécent utlisateu de php, et je m'en sort plutôt pas mal. Mais depuis deux jour je bute sur un os grave. J'ai un champ de formulaire qui est une liste de menu (select) que je dois remplir depuis une base de données; ça c'est fait, le hic est que je dois afficher une des valeurs de cette liste par défaut (selected=selected) là encore je crois tenuir le bon bout, mais je m'enmêle les pédales avec les positions des simples cotes ('), des points (.) et des doubles cotes("). Voici mon code:
<select size=1 name="id_pro" id="id_pro" >
<option value="choix">Choisissez un profil svp</option>
<?php
$sqls = "SELECT id_pro, lib_pro FROM profil WHERE (sta_pro='oui' ) ORDER BY id_pro"; //and id_pro!='super'}
$ReqLogs = mysql_query($sqls);
while ($resultats = mysql_fetch_row($ReqLogs))
{
echo "<option value='$resultats[0]' if($resultats[0]=='".$midpro."'){echo 'selected=selected';} >".$resultats[1]."</option>";
}
?>
</select>
Où $midpro désigne la valeur à laquelle sont comparées les profils chargés et qui détermine en cas d'égalité le profil à afficher par défaut au chargement de la page
Les profils sont tous bien chargés mais c'est le message "Choisissez un profil svp" qui est affichéé par défaut si quelqu'un pouvait m'aider à le faire marcher correctement je lui en serait très reconnaissant, merci d'avance
Je suis un assezrécent utlisateu de php, et je m'en sort plutôt pas mal. Mais depuis deux jour je bute sur un os grave. J'ai un champ de formulaire qui est une liste de menu (select) que je dois remplir depuis une base de données; ça c'est fait, le hic est que je dois afficher une des valeurs de cette liste par défaut (selected=selected) là encore je crois tenuir le bon bout, mais je m'enmêle les pédales avec les positions des simples cotes ('), des points (.) et des doubles cotes("). Voici mon code:
<select size=1 name="id_pro" id="id_pro" >
<option value="choix">Choisissez un profil svp</option>
<?php
$sqls = "SELECT id_pro, lib_pro FROM profil WHERE (sta_pro='oui' ) ORDER BY id_pro"; //and id_pro!='super'}
$ReqLogs = mysql_query($sqls);
while ($resultats = mysql_fetch_row($ReqLogs))
{
echo "<option value='$resultats[0]' if($resultats[0]=='".$midpro."'){echo 'selected=selected';} >".$resultats[1]."</option>";
}
?>
</select>
Où $midpro désigne la valeur à laquelle sont comparées les profils chargés et qui détermine en cas d'égalité le profil à afficher par défaut au chargement de la page
Les profils sont tous bien chargés mais c'est le message "Choisissez un profil svp" qui est affichéé par défaut si quelqu'un pouvait m'aider à le faire marcher correctement je lui en serait très reconnaissant, merci d'avance
A voir également:
- Remplissage dynamique d'une liste menu en php
- Liste déroulante excel - Guide
- Tableau croisé dynamique - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
1 réponse
Bonjour,
Effectivement tu t'embrouille "grave" les pédales :)
Tu ne peux pas faire un test PHP à l'intérieur d'un echo pour afficher, en tout cas pas de la manière dont tu l'as codé.
Pour faire plus simple :
Effectivement tu t'embrouille "grave" les pédales :)
Tu ne peux pas faire un test PHP à l'intérieur d'un echo pour afficher, en tout cas pas de la manière dont tu l'as codé.
Pour faire plus simple :
while ($resultats = mysql_fetch_row($ReqLogs)) { if($resultats[0]=='".$midpro."'){ echo "<option value='".$resultats[0]."' selected='selected'>"; } else { echo "<option value='".$resultats[0]."'>"; } echo $resultats[1]."</option>"; }
Je beau remplacer toute la partie concernée dans mon code par le script que tu m'as proposé rien n'y fait, il continu à ignorer le selected et m'affiche toujours la phrase de choix d'un profil.
Je ne perd pas espoir, et je vais continuer à farfouiller.
Tu me semble bien plus habile que moi, alors sauf erreur de ma part . Si tu peux jettes un coup d'oeil sur le code résultant de ton script dans mon code , mais sincèrement je n'y vois rein salut et merci encore de m'avoir répondu aussi vite.
Voici ce fameux bout de code:
<select size=1 name="id_pro" id="id_pro" >
<option value="choix">Choisissez un profil svp</option>
<?php
//remplissage
$sqls = "SELECT id_pro, lib_pro FROM profil WHERE (sta_pro='oui' ) ORDER BY id_pro"; }
$ReqLogs = mysql_query($sqls);
while ($resultats = mysql_fetch_row($ReqLogs))
{
if($resultats[0]=='".$midpro."')
{
echo "<option value='".$resultats[0]."' selected='selected'>";
}
else
{
echo "<option value='".$resultats[0]."'>";
}
echo $resultats[1]."</option>";
}
/*while ($resultats = mysql_fetch_row($ReqLogs))
{
echo "<option value='$resultats[0]' if($resultats[0]=='".$midpro."'){echo 'selected=selected';} >".$resultats[1]."</option>";
} */ Mon code à moi
?>
Entre deux petites réunions :)
Effectivement l'erreur saute aux yeux et je m'excuse puisque c'est moi qui ai mal recopié / corrigé la première fois.
Ton test suivant n'est pas un test (enfin pas correct du tout):
Il faut le remplacer par ceci :
Voilà pourquoi ça ne passe jamais dans ton premier cas.
Fais moi savoir si ça ne fonctionne toujours pas.