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ération des "selected" d'un Select multiple de la BDD


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Par défaut Récupération des "selected" d'un Select multiple de la BDD
    Bonjour,

    Dans un formulaire de modification d'un évènement un "select multiple" va chercher les différents types (d'évènement possible) déjà insérés dans une table mysql.
    Soit eve la table évènement (ici non montrée)
    soit type la tbl des différents types que peut avoir un évènement
    et soit liaison la tbl intermédiaire (de la liaison n tuple des 2 précédentes tables)

    J'ai écris ceci pour afficher les balises "options" MAIS pour les attributs "selected" je bloque :

    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
     
    <select name="type[]" size="10" multiple="multiple">
    <?php
    $req_type   = "SELECT * FROM type ORDER BY type ASC";
    $res_type   = mysql_query($req_type);
     
    $req_liaison   = "SELECT * FROM liaison WHERE id_ev = $id";
    $res_liaison   = mysql_query($req_liaison);
     
    $ligne_liaison = mysql_fetch_array($res_liaison);
     
    while ($ligne_type = mysql_fetch_array($res_type))
    {
    ?>
    <option value="<?php echo $ligne_type['id'] ?>" <?php if (isset($ligne_liaison) && in_array($ligne_type['id'], $ligne_liaison)) { echo 'selected="selected"'; } ?>><?php echo $ligne_type['type'] ?></option>
     <?php
    }
    ?>
    </select>
    Le selected ne marche pas correctement et n'affiche pas le bon résultat.
    Merci de me donner un coup de main

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    les attributs "selected" ?? je ne vois pas de quoi tu parles.

    dans ton code tu défini une liste "select" au final dans ton formulaire de réception tu devras parcourir un tableau $type[] qui contiendras les éléments "option" sélectionnés.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour,
    attention: quand tu fais
    if (isset($ligne_liaison)
    tu obtiens forcement un résultat, même si
    $ligne_liaison = mysql_fetch_array($res_liaison);
    te retourne FALSE, parce que ta variable existe bien.
    il faut utiliser !empty($ligne_liaison) pour vérifier que ton tableau n'est pas vide.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Par défaut
    Citation Envoyé par Vil'Coyote Voir le message
    les attributs "selected" ?? je ne vois pas de quoi tu parles.

    dans ton code tu défini une liste "select" au final dans ton formulaire de réception tu devras parcourir un tableau $type[] qui contiendras les éléments "option" sélectionnés.
    Je cherche en fait dans mon parcours <select> ceux qu'y ont été selectionnés.
    Pour leur placer selected=selected dans la balise.
    Et je ne voit pas trop ce que tu me dis, tu n'as n'a pas un exemple ?

    Ok notar merci.

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    Citation Envoyé par Andéa Voir le message
    Je cherche en fait dans mon parcours <select> ceux qu'y ont été selectionnés.
    Pour leur placer selected=selected dans la balise.
    Et je ne voit pas trop ce que tu me dis, tu n'as n'a pas un exemple ?

    Ok notar merci.
    alors, tu ne peut placer de selected que sur les <option></option> pas ailleurs donc à la première lecture tu ne pourras donc rien faire ce n'est qu'a la réception des données que tu pourra fixer le selected sauf si tu utilise du javascript.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Par défaut
    C'est bien ce que j'ai fais là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php echo $ligne_type['id'] ?>" <?php if (isset($ligne_liaison) && in_array($ligne_type['id'], $ligne_liaison)) { echo 'selected="selected"'; } ?>><?php echo $ligne_type['type'] ?></option>
    Je souhaite le placer (ce selected) dans <option> en faisant un test :
    Mais il y a une coquille et je ne vois pas où.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/04/2014, 23h29
  2. [MySQL] Récupération des donné MYSQL dans un champ select simple
    Par themaster dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/04/2009, 18h06

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