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 :

position liste déroulante [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut position liste déroulante
    Bonjour à tous

    Une petite précision avant tout : je ne suis toujours pas expert.
    J'ai un tableau, issu d'une table, avec 7 colonnes et x lignes (pas de pb),
    J'aimerai mettre une liste déroulante (php), issue d'une table, dans la 7ème colonne (et à chaque ligne) et si possible qui apparaît (et disparaît) au clic dans cette "cellule". A chaque choix, cette liste modifierait ma table par "Insert...".
    J'ai pour l'instant pour :
    - la 7ème colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td align=center>".$row["remplacement"]."</td>";
    - la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while($row = mysql_fetch_array($result_statut))
    {
    	$nom_remplt = $row["id_statut"];
    	if ($nom_remplt >=1 && $nom_remplt<=6)								
    	{
    		echo "<td><option value='".$row["id_statut"]."' >".$row["id_statut"]." : ".utf8_encode(ucfirst($row["nom_statut"]))."</option></td>";
    	}
    }
    Mais la liste est soit au-dessus, soit en-dessous du tableau, mais pas dans cette "cellule".
    Merci par avance de vos conseils éclairés
    Eric

  2. #2
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Re

    Un petit ajout. J'ai trouvé ceci sur internet pour l'apparition (disparition) de la liste :
    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
    <html>
    <head>
     <script>
    function test(obj){
        if(obj.style.visibility == "visible")
            obj.style.visibility = "hidden";
        else
            obj.style.visibility = "visible";
    }
     
    function affiche(obj){
            obj.style.visibility = "visible";
    }
     
    function init(){
        for(var i=0;i<3;i++){
            for(var j=0;j<3;j++){
                var id = 'contenu_'+i+'_'+j;
                document.getElementById(id).style.visibility = "hidden";    
            }
        }
    }
    </script>
    </head>
    <body onload="init();">
    <?php
    echo '<table border="1">';
            for($i=0;$i<3;$i++){
                echo '<tr>';
                for($j=0;$j<3;$j++){
                    $test = 'contenu_'.$i.'_'.$j;
                    echo '<td onclick="affiche('.$test.');"><div id="contenu_'.$i.'_'.$j.'" name="contenu_'.$i.'_'.$j.'">
                          <select name="voyant'.$i.'_'.$j.'">';
                               echo '<option>1</option>';
                               echo '<option>2</option>';
               }
               echo '</select></div></td>';
               echo '</tr>';
            }
            echo '</table>';?>
            </body>
     
    </html>
    je n'ai pas pu (su) utiliser ce code. Et est-ce bon pour x listes ?

    Eric

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    1/ C'est pas la bonne catégorie. Ça n'a rien à voir avec MySQL, mais PHP, ce n'est pas la même chose DU TOUT, et les deux ne sont aucunement liés.

    2/ A priori, il suffit de faire une boucle sur le premier curseur pour dessiner le tableau avec les données issues de la première requête.
    Ensuite, lors de l'affichage de la liste déroulante, faire une boucle sur le second curseur de la seconde table. Lorsque l'attribut value du <option> est égal à la valeur issue du premier curseur, il faut ajouter l'attribut selected="selected" à l'<option> en cours.

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    En gros :
    Code php : 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
     
    echo "<td align=center><select id=\"statut\">";
     
    while($row = mysql_fetch_array($result_statut))
    {
     
    	if ($nom_remplt = $row["nom_statut"])
    	{
    		echo "<option value=\"".$row["id_statut"]."\" selected=\"selected\">".$row["id_statut"]." : ".utf8_encode(ucfirst($row["nom_statut"]))."</option>";
    	}
    	else
    	{
    		echo "<option value=\"".$row["id_statut"]."\">".$row["id_statut"]." : ".utf8_encode(ucfirst($row["nom_statut"]))."</option>";
    	}
    }
     
    echo "</select></td>";

    Attention à bien utiliser un nom différent pour les deux curseurs : $row me semble, d'après vos deux bouts de code, utilisé pour le curseur global comme le curseur imbriqué. Différenciez-les !

  5. #5
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour

    Citation Envoyé par StringBuilder Voir le message
    Bonjour,
    1/ C'est pas la bonne catégorie. Ça n'a rien à voir avec MySQL, mais PHP, ce n'est pas la même chose DU TOUT, et les deux ne sont aucunement liés.
    .....
    erreur de débutant !!!!!! et surtout continuité d'une question posée il y a quelques jours

    Merci pour le code du 2ème message.
    Cela fonctionne avec 2 petits problèmes :
    - les listes sont vides à partir de la 2ème ligne
    - à l'initialisation, le choix est calé sur le dernier, alors qu'il faudrait qu'il soit celui de la BDD.

    Je vais me plonger dedans pour essayer de comprendre et essayer d'adapter

    Eric

  6. #6
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous

    Merci au modérateur d'avoir déplacé mon post dans la bonne catégorie.
    Merci à StringBuilder de m'avoir aiguillé.

    Eric

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

Discussions similaires

  1. [Langage/Algorithme] Modification de la position de la liste déroulante d'une Combobox
    Par Shionigami dans le forum C++Builder
    Réponses: 6
    Dernier message: 28/08/2010, 15h42
  2. liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 23/03/2004, 10h35
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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