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

Langage PHP Discussion :

<option selected> de ComboBox.


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut <option selected> de ComboBox.
    J'ai un soucis concernant la syntaxe d'une ComboBox.

    En fait j'ai le code suivant :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <select name="projet" id="projet">
     
    <?php 
     
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=aide_au_depannage','ident','MdP');
    }
    catch (Exception $e)
    {
    die('Erreur : ' . $e->getMessage());
    }
     
    $requete = $bdd->query('SELECT * FROM projets');						
     
    while($donnees = $requete->fetch())
     
    {
    ?>							
    <option value="<?php echo $donnees['id'];?>"><?php echo $donnees['nom'].'_'.$donnees['str'];?></option>								
    <?php
    }
     
    $requete->closeCursor();
     
    if (isset($_SESSION['curr_proj']))
    {
    ?>
    <option value="<?php echo $_SESSION['curr_proj'].'_'.$_SESSION['curr_str'];?>" selected="selected"><?php echo $_SESSION['curr_proj'].'_'.$_SESSION['curr_str'];?></option>
    <?php
    }
    ?>	
     
    </select>
    En fait globalement dans l'idée ce que j'ai souhaité faire c'est qu'une fois que l'utilisateur avait sélectionné un projet et qu'il se retrouvait sur la page (avec un $_SESSION['curr_proj']) je met le focus dans la ComboBox sur l'élément qui a été selectionné.

    Et en fait tel que je l'ai codé, il me rajoute un élément dans la ComboBox identique à celui choisi et met le focus dessus.

    Savez-vous comment palier le soucis ?
    Merci d'avance.

  2. #2
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Si $_SESSION['curr_proj'] est l'équivalent de ton id dans ta base de données, tu dois faire une vérification à chaque nouvel item de ton select à savoir s'il correspond à $_SESSION['curr_proj'], si oui tu ajoutes un selected="selected"

    Voir le code modifié

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <select name="projet" id="projet">
     
    <?php 
     
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=aide_au_depannage','ident','MdP');
    }
    catch (Exception $e)
    {
    die('Erreur : ' . $e->getMessage());
    }
     
    $requete = $bdd->query('SELECT * FROM projets');						
     
    while($donnees = $requete->fetch())
     
    {
    if($_SESSION['curr_proj'] == $donnees['id']) $selected=' selected="selected"'
    else $selected='';
    echo '<option value="' . $donnees['id'] . '"' . $selected . '>' . $donnees['nom'].'_'.$donnees['str'] . '</option>';
    }
     
    $requete->closeCursor();
     
    ?>
     
    </select>
    Je te conseille de ne pas mettre trop de <?php ?> dans ton code. C'est très difficile à se relire et à voir où est situé le code php du html.

    Personnellement, je mets toute ma sortie vers l'écran dans une variable $output et à la fin de mon script je fais un echo $output. Ça m'évite d'avoir à travailler du html au travers de mon php. C'est 100% plus facile à se retrouver par la suite.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup pour la méthode, ça marche nickel.

    En revanche je n'ai pas trop compris l'explication sur ta variable output ?
    Je suis tout à fait d'accord que j'en ai partout des <?php ?> et que c'est un peu le bordel, mais je vois pas comment faire avec ta technique. Ce qui s'affiche a l'écran doit bien se trouver dans des <div> spécifiques ?
    Comment je pourrais faire un écho de tout ça juste a la fin ?

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value="<?php echo $donnees['id'];?>"><?php echo $donnees['nom'].'_'.$donnees['str'];?></option>
    Devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $html = '<option value="'.$donnees['id'].'">'.$donnees['nom'].'_'.$donnees['str'].'</option>';
    Et à la fin un echo de la variable

    Dans cette variable, tu y mets tous les <div> et autres, engros tu auras un code genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $html = '
     
    ici tout le html avec des conditions et autres
     
     
    ';
    Edit: je me permets de répondre car TigerCX à l'air d'être de ma tranche horaire où je dors
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    Merci Fench, comme d'hab.

    Par contre je suis qu'a mon deuxième café j'ai l'impression que mon cerveau a pas voulu démarrer pour l'instant.
    J'ai bien compris le début de l'explication, jusqu'à l'echo à la fin. (En fait je faisais le contraire, du php dans l'html plutot que l'html dans le php)

    En revanche quand tu dis dans $html tu y mets tous les <div> et autres j'avoue ne plus suivre...

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    En fait je faisais le contraire, du php dans l'html plutot que l'html dans le php
    C'est exactement ça, mais libre à toi de faire du php dans le html
    question de goût ...

    mais je vois pas comment faire avec ta technique. Ce qui s'affiche a l'écran doit bien se trouver dans des <div> spécifiques ?
    En utilisant cette variable, tu mets tout ton code html dedans même les div c'est ça que tu n'as pas compris?
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    Tu veux dire que c'est comme un <div> Bloc_page mais en php avec une variable ?
    Et t'affiches juste cette variable qui contient tout le code de la page ?

    C'est quoi l'avantage ?

  8. #8
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Tu veux dire que c'est comme un <div> Bloc_page mais en php avec une variable ?
    Je sais pas qui de nous deux planes le plus ce matin mais nous sommes pas sur les même ondes Je comprends plus rien

    L'avantage de la variable, ya pas, c'est juste une méthode ...

    Pour les div, donnes moi un bout de code en MP si c'est long, je te ferais un exemple pour la variable ... peut être que je comprendrais mieux
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  9. #9
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Effectivement, nous ne sommes pas sur la plage plage horaire !

    Voici un exemple de ce que je veux dire :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    <?php
     
    define('TITLE','Beauté Santé Suzanne Paré');
     
    $output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>' . TITLE . '</title>
        <link href="http://fonts.googleapis.com/css?family=Coda+Caption" rel="stylesheet" type="text/css" />
        <link href="http://fonts.googleapis.com/css?family=Philosopher" rel="stylesheet" type="text/css" />
        <link rel="stylesheet" type="text/css" href="css/styles.css" />
        
        <script type="text/javascript" src="js/script.js"></script>
        <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="js/jquery.poptrox-0.1.js"></script>
    
      </head>
      <body>
        <div id="outer">
          <div id="header">
            <div style="visibility:hidden;" id="logo">
              <h1>Beauté Santé Suzanne Paré</h1>
            </div>
            <div id="nav">
              <ul>
                <li class="first active">
                  <a href="index.php">Accueil</a>
                </li>
                <li>
                  <a href="#">Services</a>
                </li>
                <li>
                  <a href="#">Portfolio</a>
                </li>
                <li>
                  <a href="#">À propos</a>
                </li>
                <li class="last">
                  <a href="contact.php">Contactez-nous</a>
                </li>
              </ul>
              <br class="clear" />
            </div>
          </div>
          <div id="banner">
      
            <img src="images/banner.jpg" width="1180" height="305" alt="" />  
            
          </div>';
     
    $output .= '
          <div id="main">
            <div id="content">
              <div id="box1">
                <h2>Bienvenue à toutes et à tous</h2>
                <p>
                  <strong>FWT  Protoype</strong> is a Free XHTML/CSS template by <a href="http://freewebtemplates.com/business-templates/">free business templates</a>. We release all of our free templates under the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a> , which means you can use it however you like as long as you give credit via a small text link somewhere on the site. If you would like to remove this link you can do so by sending a <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6H247U4WTMRQ">paypal donation</a> of your choosing. All images used in this template are sourced from <a href="http://unprofound.com/">Unprofound</a>, thier links must remain intact if you wish to use their images.
                </p>
              </div>
              <div id="box2">
                <h3>Fermentum pulvinar commodo</h3>
                <img class="top" src="images/image02.jpg" width="420" height="135" alt="" />
                <p>
                  Natoque praesent orci pretium viverra placerat. Sapien consectetur feugiat tempor primis amet iaculis accumsan. Lacus blandit nisi cubilia vel nisi adipiscing. Dictum massa arcu vestibulum.
                </p>
              </div>
              <div id="box3">
                <h3>Penatibus suscipit</h3>
                <img class="top" src="images/image03.jpg" width="420" height="135" alt="" />
                <p>
                  Molestie aliquam donec eleifend adipiscing tincidunt. Adipiscing phasellus dignissim hendrerit. Tristique ipsum tristique ultrices amet faucibus.
                </p>
              </div>
              <br class="clear" />
            </div>
            <div id="sidebar">
    
              <div class="widget">
                <div class="gallery">
                
                  <h2>Fermentum pulvinar</h2>
                  
                  <ul id="pics" class="gallery_sidebar">
                    <li>
                      <a href="images/4.jpg"><img src="images/image04.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/5.jpg"><img src="images/image05.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/6.jpg"><img src="images/image06.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/7.jpg"><img src="images/image07.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/8.jpg"><img src="images/image08.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/9.jpg"><img src="images/image09.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/10.jpg"><img src="images/image10.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/11.jpg"><img src="images/image11.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                    <li>
                      <a href="images/12.jpg"><img src="images/image12.jpg" width="60" height="60" alt="" title="Lorem Ipsum Dolor" /></a>
                    </li>
                  </ul>
                  
                  <script type="text/javascript">
                    $(\'#pics\').poptrox();
                  </script>
                  
                </div>
                <br class="clear" />
              </div>
              
            </div>
            <br class="clear" />
          </div>';
     
    $output .= '
    <div id="footer">
            <div id="footerContent">
              <h3>Fermentum pulvinar commodo</h3>
              <p>
                Consectetur duis phasellus lorem. Mollis ultricies vivamus duis feugiat tortor. Consequat euismod vel dolor fermentum elementum fringilla. Sodales lacus scelerisque sed elementum ultrices. Lectus nibh sem sociis nisi. Quis natoque mus auctor metus. Pretium odio pulvinar penatibus sit amet. Curabitur mollis et posuere id porttitor mattis diam. Pretium blandit eu cras pharetra condimentum vestibulum enim. Primis semper viverra sagittis feugiat laoreet.
              </p>
            </div>
            <div id="footerSidebar">
              <h3>Pour nous rejoindre</h3>
              <ul class="contactinfo">
                <li>819.342.7973
                </li>
                <li>
                  <a href="mailto:xxx@xxx.xxxx">xxx@xxx.xxxx</a>
                </li>
                <li>228 rue Murray
                  <br />
                  Sherbrooke, Qc
                  <br />
                  J1G 2K4
                  <br />
                </li>
              </ul>
            </div>
            <br class="clear" />
          </div>
        </div>
        <div id="copyright">
          &copy; 2012 Beauté Santé Suzanne Paré - Tous droits réservés
        </div>
      <div style="margin: 1em 0 3em 0; text-align: center;">
    </div>
    </body>
    </html>';
     
    echo $output;
    C'est l'un de mes fichiers typiques index.php. Je mets tout mon HTML dans une variable $output et à la fin de mon script je fais un echo $output.

    Si jamais tu as un affichage dynamique à faire, tu le fais en ajoutant le résultat dans la variable $output.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while($row = mysql_fetch_row($resultat)){
    $output .= 'Résultat dynamique : ' . $row[0];
    }
    C'est une méthode que j'ai acquise au fil du temps quand j'ai dû retravailler mon code et que je ne m'y retrouvais pas à cause des utilisation trop fréquente des <?php ?>

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    Ah d'accord ça marche. Merci à vous deux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Réponses: 14
    Dernier message: 25/11/2005, 14h22
  3. [JSP]Erreur de syntaxe dans un tag <option select
    Par logica dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 03/05/2005, 14h33
  4. Réponses: 8
    Dernier message: 05/05/2004, 16h28

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