IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut [Conception] liste déroulante
    Bonjour enfaite j'aimerais que a partir d'une donnée stockée dans ma base de donnée , dans ma liste déroulante cette donnée saffiche...! par exemple dans une liste déroulante ou il y orai madame , monsieur , mademoiselle ! si la donnée stockée est "Mademoiselle" alors mademoiselle soit mise par défaut ...
    merci

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    C'est une simple serie de test à effectuer. Tu récupères tes données BDD normalement puis après tu fais des tests pour savoir quel élément du formulaire doit être coché

  3. #3
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    Bonjour,
    une liste déroulante, en html, ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="civilite">
       <option value="madame">Mme</option>
       <option value="mademoiselle">Mlle</option>
       <option value="monsieur">Mr</option>
    </select>
    En général, le navigateur préselectionne le premier element de la liste.
    Pour qu'un élément autre que le premier soit préselectionné, il faut que la balise option de l'élément en question ait l'attribut selected :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <option value="mademoiselle" selected>Mlle</option>
    donc, une fois que tu as extrait la valeur désirée de ta base de données (immaginons que tu l'ait rangée dans une variable $civilite), tu n'as plus qu'a faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="civilite">
       <option value="madame"<?php if( $civilite=="madame")print(" selected"); ?>>Mme</option>
       <option value="mademoiselle"<?php if( $civilite=="mademoiselle")print(" selected"); ?>>Mlle</option>
       <option value="monsieur"<?php if( $civilite=="monsieur")print(" selected"); ?>>Mr</option>
    </select>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Ok je voit, je vais essayé

  5. #5
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    Citation Envoyé par marie4449
    Bah ca me dit pas comment faire...!
    Bah je sais pas ce qu'il te faut... !
    Citation Envoyé par marie4449
    en mettant une condition c'est faisable parcequ'il y a que trois ligne dans la liste déroulante mais si il y en a 100
    ben dans ce cas là, tu reprends le même principe mais dans une boucle, je ne vois pas où est le probmème

  6. #6
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Décidément quand j'ai vu le pseudo j'ai eu un espoir de voir une progression avec tout ce qu'on a dit dans des précédents topics, et finalement rien. Ah si c'est moins SMS qu'au début, mais comme ça reste bourré de fautes partout... Désespérant.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par JWhite
    Décidément quand j'ai vu le pseudo j'ai eu un espoir de voir une progression avec tout ce qu'on a dit dans des précédents topics, et finalement rien. Ah si c'est moins SMS qu'au début, mais comme ça reste bourré de fautes partout... Désespérant.

    c'est méchant mais en meme temps c'est tellement vrai

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    Ouaip lol je vais faire attention aux fautes !
    Je ne voyais pas ca comme ca ,mais j'ai essayé de faire comme tu m'as expliqué...je ne sais pas si ca fonctionne aussi dans ce style la...c'est un ptit peu de la bidouille !
    qu'en pensez vous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <select name="correspondant">
    <?php
    //remplissage de la liste déroulante a l'aide de la base de donnée en concaténant les champs afin qu'ils soit sur une meme ligne
    $sql= "select initiales, nom , prenom , num from correspondant order by initiales";
    $selec= "select initiales from renseignements";
    $res = mysql_query($sql);
    $selec= mysql_query($select);
    while($tablo=mysql_fetch_array($res)) 
    {
    $ini = $tablo["initiales"];
    echo "<option value=\"".$tablo["initiales"]."\" <if (ini==$selec)print("selected");> > ".$tablo["initiales"]." , ".($tablo["nom"])." , ".($tablo["prenom"])." , ".($tablo["num"])."</option>";
    }
    ?>
    </select>

  9. #9
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $selec= "select initiales from renseignements";
    $res = mysql_query($sql);
    $selec= mysql_query($select);
    while($tablo=mysql_fetch_array($res)) 
    {
    $ini = $tablo["initiales"];
    echo "<option value=\"".$tablo["initiales"]."\" <if (ini==$selec)print("selected");> > ".$tablo["initiales"]." , ".($tablo["nom"])." , ".($tablo["prenom"])." , ".($tablo["num"])."</option>";
    }
    ça tourne à la catastrophe, c'est pas possible, c'est pour une caméra cachée non ? sinon dis-nous quand tu compteras te mettre à php (si tu comptes t'y mettre j'en doute) on verra après
    incroyable

  10. #10
    Invité
    Invité(e)
    Par défaut
    je pense que ça doit certainement pas marcher
    ils manquent les balises php pour le if, la condition du if est étrange (manque le $ aussi)

    et je comprends pas ce que tu veux faire

    ps: tu t'es mis à la programmation quand?as tu fais qq tuto avant, lu des cours sur php etc?et surtout tu fais un site pour apprendre ou tu es en stage ou qq chose dans ce genre

  11. #11
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    mon dieu que je plains l'interpréteur php dans ton cas également ;o)

    Concentrons nous sur ces 2 magnifiques lignes (en réduisant un peu, sinon j'suis encore là dans 3 heures ;o) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ini = $tablo["initiales"];
    echo "<option value=\"".$tablo["initiales"]."\" <if (ini==$selec)print("selected");> > ".$tablo["initiales"]." , ".($tablo["nom"])." , ".($tablo["prenom"])." , ".($tablo["num"])."</option>";
    * Parsage de "initiales" pour voir si ca contient pas de variable : nan, une chaine toute bete, donc acces a l'indice de $tablo, reservation de mémoire et stockage dans $ini
    * Parsage d'une chaine a afficher
    * 1ere partie de la chaine : echapper "
    * 2eme partie de la chaine : acces a l'indice initiales de $tablo (tiens, j'avais fait ca recemment et je l'avais stocké dans une variable, etrange... )
    * 3eme partie de la chaine : echapper ", concatener la chaine <if (ini==, parsage et remplacement de $select, concatener la chaine )print("selected");> >
    * 4eme partie de la chaine : acces a l'indice initiales de $tablo (rhoo... encore ? mais bon, l'utilisateur doit manquer de memoire et l'economiser en evitant d'instancier une variable, il ne peux en etre autrement ! Quel bon programmeur ;o)
    * 5eme partie : parsage de " , " pour verifier qu'elle ne contient pas de variable et concatenation.
    * 6eme partie : Oh ! On a des parenthese ! On doit donc parser une expression ! Parsage du contenu de l'expression : C'est une variable, parsage de l'indice pour verifier qu'il ne contient pas de $... ah ben nan ;o)
    * 7, 8, 9, 10 : idem que 5, 6, 5, 6
    * 11 : parsage de "</option>" pour verifier qu'elle ne contient pas de $ et concatenation
    * 12 : affichage de la chaine concatenée

    Demain je vous fait une lecture commentée sur la pertinence des noms de variables utilisées ;o)

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    quand c'est qu'on fait un best of.....

  13. #13
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Moi j'aurai carrément mis comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $selec= "select initiales from renseignements";
    $res = mysql_query($sql);
    $selec= mysql_query($select);
    while($tablo=mysql_fetch_array($res)) 
    {
           $ini = $tablo["initiales"];
           echo '<option value="'.$ini.'" '.(($ini==$selec)?("selected"):("")).'>'.$ini.' , '.($tablo["nom"]).' , '.($tablo["prenom"]).' , '.($tablo["num"]).'</option>';
    }

  14. #14
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Citation Envoyé par Kerod
    Moi j'aurai carrément mis comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $selec= "select initiales from renseignements";
    $res = mysql_query($sql);
    $selec= mysql_query($select);
    while($tablo=mysql_fetch_array($res)) 
    {
           $ini = $tablo["initiales"];
           echo '<option value="'.$ini.'" '.(($ini==$selec)?("selected"):("")).'>'.$ini.' , '.($tablo["nom"]).' , '.($tablo["prenom"]).' , '.($tablo["num"]).'</option>';
    }
    Puisque on en est a donner des versions corrigés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $sql= 'SELECT initiales, prenom, nom, num FROM renseignements';
    $res = @mysql_query($sql) or die('Erreur SQL sur <tt>$sql</tt>: <br><font color=red><b>'.mysql_error().'</b></font>');
    $res2= @mysql_query($sql2) or die('Erreur SQL sur <tt>$sql2</tt>: <br><font color=red><b>'.mysql_error().'</b></font>');
    $select = @mysql_result($res2, 0, 'initiales') or die(mysql_error()); // faut bien le récuperer de quelque part non ?
    while($data=mysql_fetch_assoc($res)) {
           list($initiales, $prenom, $nom, $num) = $data;
           // meme si on perd un peu en vitesse, je prefere cette syntaxe plus lisible :
           $selected = ($initiales==$select)?' selected':'';
           echo "<option value='$initiales'$selected>$initiales, $nom, $prenom, $num</option>";
    }
    Le list, c'est de la frime, j'avoue ;o) c'est plus logique d'affecter chaque valeur a une variable en utilisant la clé du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $initiales = $data['initiales'];
    $prenom = $data['prenom'];
    $nom =$data['nom'];
    $num = $data['num'];
    Ca evite d'avoir a modifier le list dans le cas ou on change l'ordre des colonnes dans la requete.

    Une autre solution avec list serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($initiales, $prenom, $nom, $num) = array($data['initiales'], $data['prenom'], $data['nom'], $data['num']);
    mais c'est un peu lourd.

    Un derniere solution un poil plus elegante que la précédente, mais qui pose probleme si on ajoute des colonnes quand meme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ksort($data);
    list($initiales, $nom, $num, $prenom) = $data;
    sinon y a toujours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($data as $k=>$v) {
    $$k = $v;
    }
    voir meme extract($data); mais je prefere savoir quelles sont les variables existantes dans mon code ;o)

  15. #15
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par boo64
    quand c'est qu'on fait un best of.....
    C'est pas une mauvaise idée ça... Je te laisse t'en occuper moi je vais être pris les jours à venir

  16. #16
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Citation Envoyé par JWhite
    C'est pas une mauvaise idée ça... Je te laisse t'en occuper moi je vais être pris les jours à venir

  17. #17
    Invité
    Invité(e)
    Par défaut
    peut etre c une fausse impression mais jai tendance a penser que bcp viennent sur le forum pour quon leur fasse le code donc ils pondent un code pourri à la va vite et attende des code propres et des codes qui marchent.

    C'est juste ce que je pense car je suis inscrit depuis 2 mois et en 2 mois il y a :
    - bcp de pb recurrent(mail,sessions pour ne cité que eux) donc les personnes n'utilisent meme pas la fct recherche pour savoir si le pb a deja été traité
    - et puis des pb comme celui ci de code bidon, des personnes qui ne prennent meme pas la peine de lire des cours et sexercer sur qq tuto avant de se lancer dans la programmation

    Tout cela pour dire que bcp pensent que le php (voir prog web) c'est facile et tt le monde peut le faire donc pas besoin den faire un métier (je dis ça par rapport a ce que je peux lire et voir sur dautres forums)

    Heu bon je me tais et bonne chance a marie car elle va en avoir besoin sinon jaimerais bien découvrir les bestof

  18. #18
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Citation Envoyé par rbaatouc
    peut etre c une fausse impression mais jai tendance a penser que bcp viennent sur le forum pour quon leur fasse le code donc ils pondent un code pourri à la va vite et attende des code propres et des codes qui marchent.

    C'est juste ce que je pense car je suis inscrit depuis 2 mois et en 2 mois il y a :
    - bcp de pb recurrent(mail,sessions pour ne cité que eux) donc les personnes n'utilisent meme pas la fct recherche pour savoir si le pb a deja été traité
    - et puis des pb comme celui ci de code bidon, des personnes qui ne prennent meme pas la peine de lire des cours et sexercer sur qq tuto avant de se lancer dans la programmation

    Tout cela pour dire que bcp pensent que le php (voir prog web) c'est facile et tt le monde peut le faire donc pas besoin den faire un métier (je dis ça par rapport a ce que je peux lire et voir sur dautres forums)

    Heu bon je me tais et bonne chance a marie car elle va en avoir besoin sinon jaimerais bien découvrir les bestof
    +1 rbaatouc... Moi j'ai démarré le php il y'a 2 mois (pour mon stage) au début je pense avoir poster alor que j'aurais pu trouver mes erreurs .... mais quand on ma signaler mon erreur j'ai enregistré....alors que certain reposte des sujets pour des erreurs qu'ils ont deja eu!!!

    donc par exemple marie tes 2,3 premier post on est indulgent.....après moins

    sinon pour un petit best of :oui oui oui

  19. #19
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    +1 avec vous deux.

    Boo je me rappelle quand tu es arrivé, sans vouloir t'encenser tu es le protoype de la personne idéale sur ce forum : tu débarques un peu paumé, tu demandes quelques trucs pas évidents quand on démarre, tu assimiles, tu prends le coup de main et après tu renvoie l'ascenseur en aidant les autres. Bravo.

    Remember : prise de (full) contact ici : http://www.developpez.net/forums/sho...d.php?t=137892


    Et je rejoins rbaatouc, il y a des gens que j'ai vraiment envie d'aider car ils font des efforts et tu sens qu'ils sont motivés, et il y en a d'autres qui te prenne pour un chien qui va pondre du code comme si il avait que ça à faire et là ça m'énerve énormément.

  20. #20
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Je me suis inscrit y a quelques temps deja, mais ne participe a ce forum que depuis recemment, ayant trouvé que les messages présent sur ce forum était en général plus interessant et plus pointus que d'autres sur le forum d'un site concurrent (non, pas de nom ici ;o)

    Mais il est vrai que ces derniers temps j'ai l'impression de retrouver le meme genre de message... ce n'est peut etre que temporaire, et je pense qu'il y a quand meme nombre de messages interessants ici.

Discussions similaires

  1. [Conception] Liste déroulante dynamique
    Par rach20032 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/08/2011, 14h07
  2. [Conception] recherche via plusieurs listes déroulantes
    Par chicho dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/03/2007, 17h56
  3. [Conception] Récupèrer une variable dans une liste déroulante
    Par olivier94 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 21/02/2007, 12h12
  4. [Conception] Liste déroulante a mettre en place
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/10/2006, 12h58
  5. Réponses: 2
    Dernier message: 27/12/2005, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo