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 :

Faire apparaitre une sous-liste déroulante en choisissant dans la liste déroulante principale


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Par défaut Faire apparaitre une sous-liste déroulante en choisissant dans la liste déroulante principale
    Bonjour, je sollicite votre aide car je souhaite qu'en choisissant un quartier principale (ayant pour id_parent=0) d'une liste déroulante, que son sous-quartier apparait dans la liste déroulante suivante.
    Les quartiers principaux s'affichent bien, tandis que seulement les derniers sous-quartiers de la liste apparaissent sans même avoir choisi le quartier principale dont l'id_parent =0

    Voici ma table quartiers:
    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
     
    id   id_parent   quartier_fr    quartier_en
    1         0            quartier1          quartier1
    2         0            quartier2          quartier2
    3         0            quartier3          quartier3
    4         0            quartier4          quartier4
    .
    .
    .
    101      1          sous-quartier1          sous-quartier1
    102      1          sous-quartier2          sous-quartier2
    103      1          sous-quartier3          sous-quartier3
     
    201      2          sous-quartier4          sous-quartier4
    202      2          sous-quartier5         sous-quartier5
    203      2          sous-quartier6         sous-quartier6
    ...
    Voici le code de ma fonction dans la page des commandes:
    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
    function getQuartier( $id_parent=0 )
    {
       global $bdd;
     
     
       $sql = "SELECT id, id_parent, quartier_".$sql_lang." AS qua
    	FROM quartiers
    	WHERE id_parent = :id_parent
    	ORDER BY id
    	";
     
       try{
          $req = $bdd->prepare($sql);
          $req->execute( array(':id_parent'=>$id_parent) ); 
          $res =  $req->fetchAll(PDO::FETCH_ASSOC);
        }catch(Exception $e){
          echo "Erreur dans la requête " . $sql;
          $res = false;
        }
     
       return $res;
    }
    La page du formulaire:
    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
      <span><label for="quartier">quartier 1></label></span> <br>
                    <select id="quartier" onchange="choisirquart()" name="quartier">
                    <option value="" disabled selected><?php echo $lang['quartier'];?></option>
                  <?php
     
               // 1- on récupère les quartiers principaux
    $quartiers = getQuartier( 0 );
     
                  foreach($quartiers as $quart){
     
     
     
     echo "<option value='".$quart['id']."'>".$quart['qua']."</option>";  //ça marche bien pour les quartiers principaux
     
     
     }
     ?> 
     
    </select>
    <br> <br>
     
     
    <span><label for="quartier">sousquartier</label></span> <br>
                    <select id="quartier2" onchange="choisirquart()" name="sousquartier">
                    <option value="" disabled selected><?php echo $lang['quartier'];?></option>
                  <?php
     
                  $sousquartiers = getQuartier( $quart['id'] );  
     
     
          // Si il n'y a pas de sous-quartiers
    if( empty($sousquartiers) )
    {
    echo "	<option value='".$quart['id']."'>".$quart['qua']."</option>"."\n"; // "\n" : passage à la ligne dans le code (lisibilité du code)
    }
    // Sinon (il y a des sous-quartiers)
    else
    {
    echo "	<optgroup label ='".$quart['qua']."'> "."\n";
     
                  foreach($sousquartiers as $sq){
     
     
     
     echo "<option value='".$sq['id']."'>".$sq['qua']."</option>";
     
     
     }
    }
     ?>
     
    </select>

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Bonjour
    En passant ... j'ai trouvé des exemples de code en tapant "Dynamic populating the drop down list based on the selected value of first list" sous goo*gle

    Bah les réponses vont venir

Discussions similaires

  1. Faire apparaitre une page web dézoomée ou entière dans une div
    Par binco dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/06/2016, 03h02
  2. Réponses: 5
    Dernier message: 25/02/2013, 14h05
  3. Réponses: 5
    Dernier message: 01/07/2010, 18h02
  4. faire apparaitre une Liste déroulante
    Par yaboki dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/12/2008, 18h52
  5. Faire apparaitre une liste déroulante dans un tableau
    Par AsQuel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/07/2007, 17h20

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