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 :

Récupérer les données d'une base pour un "select multiple"


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut Récupérer les données d'une base pour un "select multiple"
    bonjour,
    j'ai un formulaire avec un select multiple.
    je voudrais que soient présélectionnées les valeurs qui ont déjà été enregistrées dans la bdd. Ce sont des numéros de départements, enregistrés sous la forme 75 ou 75,77,78.
    Je ne sais pas comment faire pour que le select fasse la préselection quand il y a plusieurs valeurs dans la cellule.

    je vous mets mon code pour l'instant :


    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
    <?php
     
    $listelieu=array(
    "" => "Choisir",
    "75"=>"75",
    "77"=>"77",
    "78"=>"78",
    "91"=>"91",
    );
     
    echo "<select name='lieu[]' multiple>";
    foreach ($listelieu as $key=>$value) {
    $selected = ($data['lieu'] == $key)?"selected":"";
    echo '<option value="'.$key.'" '.$selected.'>'.$value.'</option>';
    }
    echo "</select>";	
    ?>
    (la requête qui donne $data a été définie avant et fonctionne)

    merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 394
    Points : 15 755
    Points
    15 755
    Par défaut
    d'abord tu découpes ton champ suivant les virgules avec la fonction http://php.net/explode et ensuite tu peux regarder si le département est dans le tableau avec la fonction http://php.net/in_array

  3. #3
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    je viens de réaliser que c'était juste explode, j'allais dire que j'avais trouvé la solution.
    merci de ton aide

  4. #4
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    en fait j'ai encore un problème :
    j'ai bien récupéré le tableau issu d'un explode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $data = mysql_fetch_array($req);
    $selectlieu = explode(",", $data['lieu']);
    mais je ne sais pas comment le réutiliser avec le sélect multiple cité dans mon premier message dont le contenu est déjà issu d'un autre tableau. je comprends bien que le contenu de $selectlieu doit remplacer le data['lieu'] dans le select mentionné , mais je ne sais pas comment m'y prendre.

    Merci à ceux qui pourront m'aider, je suis complétement perdue.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    bonjour

    Mathieu t'a proposé une fonction bien utile : in_array

    Pour reprendre ton premier code, tu pourrais faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = (in_array($key, $select_lieu))?"selected":"";

  6. #6
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    merci, c'est ca, je ne voyais pas comment utiliser in_array

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/07/2009, 08h12
  2. Réponses: 3
    Dernier message: 23/05/2008, 11h45
  3. Afficher les nom des tables d'une base de donnée
    Par newmar dans le forum Administration
    Réponses: 4
    Dernier message: 02/04/2008, 16h40
  4. Afficher les tables et champs d'une base de données
    Par sovo dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 21/02/2008, 14h40
  5. Suivre les mises a jour d'une base de données avec Delphi 7?
    Par ncazanav dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/12/2006, 20h22

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