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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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 confirmé
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    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 confirmé
    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
    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
    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

  5. #5
    Membre confirmé
    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
    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
    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?

+ 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