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 :

[Conception] Liste déroulante dynamique


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 53
    Par défaut [Conception] Liste déroulante dynamique
    Bonjour,

    j'ai un problème, je voudrais qu'à travers les données d'une liste déroulante si on choisit une donnée de cette liste afficher les données correspondantes dans l'autre liste
    exemple si on choisit France , on affiche que les villes françaises.

    Sachant que les données des deux listes ne sont pas dans une table merci


    Cordialement

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Généralement tu peux soit bricoler deux formulaires .Le premier qui enverra la valeur de la premiere liste au second formulaire qui lui validera le formulaire complet. Cette technique ne nécessite que des connaissances php et mysql mais reste un peu "bricolo" à mon sens.

    Ou alors une autre solution mais plus délicate à déployer au début est de gérer tes listes via ajax. Lorsque tu mets à jour la premiere liste, tu executes une requete ajax qui va calculer (dans un tableau php par exemple vu que tu n'as pas de bdd) les valeurs à afficher et les injecter dans la deuxieme liste. C'est plus sympa à mon sens parce que tu 'nas pas de réchargement de pages ainsi (de plus, ça te permet de t'initier à ajax).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 49
    Par défaut Liste déroulante dynamique
    Voici un exemple que j'utilise et ca marche bien:
    Pour la premier liste tu charge les données de la base avec ce code:
    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
    <div style="margin:5px 0 0 0;float:left;">						
    					<label for='Sectactivite'>Secteur d'activité:</label> 
    					<select name='Sectactivite' id ='Sectactivite' onchange='change()' style='margin:0 15px 0 20px !important;margin:0 15px 0 25px; WIDTH: 138px'">
    						<option value='-1'>Aucun</option>
    					<?php						
    						$requete1="select * from secteur_activites";
    						$resultat = mysql_query($requete1);
    						while($row = mysql_fetch_row($resultat))
    						{
    							$NUM_SECT = $row[0];
    							$LIBELLE_SECT = $row[1];
    							echo "<option value='".$NUM_SECT."'>".$LIBELLE_SECT."</option>";
    						}
    					?>
    					</select>
    				</div>
    et voici le code html des 2 liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div>
    					<div style="float:left;width:113px !important;width:108px;margin-top:5px;">
    						<label for='act'>Activité:</label>
    					</div>
    					<div  id ='activite' style="margin:0px 0 0 39px !important;margin:0px 0 0 29px;">
    						<select name='activite' id="act" style='width:128px;'>
    							<option value='-1'>Choisir un secteur</option>
    						</select>
    					</div>
    				</div>
    et pour la 2ieme liste tu met le code php dans fichier a part et le voici que j'ai appelé Activite.php:


    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
    <?php
    	echo "<select style='margin-left: 13px;' name='activite'>";
    	if(isset($_REQUEST["Sectactivite"]) && $_REQUEST["Sectactivite"]!=-1){
    		mysql_connect("localhost","root","emploi");
    		mysql_select_db("bd_dt");
    		$r = "select NUM_ACT,LIBELLE_ACT from activitees where activitees.num_sect ='".$_REQUEST['Sectactivite']."'";
    		$res =  mysql_query($r);
    		while($row = mysql_fetch_row($res)){
    			$num = $row[0];
    			$lib = $row[1];
    			echo "<option value='".$num."'>".$lib."</option>";
    		}
    		mysql_close();
    	}
    	else
    		echo "<option value='-1'>Choisir un secteur</option>";
    	echo "</select>";
     
    ?>

  5. #5
    Membre averti
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2011
    Messages : 16
    Par défaut listes liees dynamiques php sqlserver
    bonjour,
    je cherche a recuperer la meme chose mais ous une base de donnes sqlserver pour ma 1ere liste qui affiche les wilaya a partir de ma bd cela fonctione le pb se pose au niveau de la seconde liste qui safiche vide voici mon code :
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <?php
     
    require_once('ECOFIEok\conn.php');
    if(isset($_POST['cat']))
    {
    	session_start(); }
    ?>
    <html>
    <head>
    <title>Document sans titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript" type="text/javascript">
    List = new Array();
    function Remplir(valeur){
      var sel="";
      sel ="<select size='1' name='souscat'>";
      // Parcourir le tableau
      for (var i=0;i<List.length;i++)
       {
         // tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
         if (List[i][1]==valeur)
         {
           // Ajouter une rubrique sous-catégorie au variable SEL
           sel= sel + "<option value="+List[i][0]+">"+List[i][2]+"</option>";
         }
     
       }
       sel =sel + "</select>";
       // Modifier le DIV scat par la nouvelle List à partir du variable SEL
       document.getElementById('scat').innerHTML=sel;
    }
     
    </script>
     
    </head>
     
    <body>
    <tr>   <td><form name="form1" method="post" action="">
          <p>&nbsp; </p>
          <p>
            <select size="1" name="cat"  dir="ltr" onChange="Remplir(cat.value)">
              <?php
    // Paramètres de la Connexion à la base MYSQL
     
    $i=0; // variable de test
    $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
     
     
    // Séléction de tous les enregistrements de la table Catégorie
    $query=odbc_exec ($sqlconnect,"SELECT * FROM wilaya order by id_wilaya");
     
    while(odbc_fetch_into($query,$row))
     {
     
     // Remplir la liste déroulante des catégorie
     echo "\t\t<option value=".($row[0]).">".($row[1])."</option>";
     if ($i==0) { $j=$row[0]; $i=1; } // garder la valeur du premier enregistrement
    }
     
    // Séléction de tous les enregistrements de la table Sous-Catégorie
    $query=odbc_exec ($sqlconnect,"SELECT * FROM commune order by id_wilaya");
     
    while(odbc_fetch_into($query,$row))
     {
    // $i = initialise le variable i
    $i=0;
    while (odbc_fetch_row($query))
    {
     // Remplir le tableau (array) en javascript
     // ex : List[1]=new Array (1,1,"Sous-catégorie 1");
     // ex : List[2]=new Array (2,1,"Sous-catégorie 2");
     echo "<script>List[".$i."] = new Array(".($row[0]).",".($row[1]).",'".($row[2])."');</script>";
     $i=$i+1; // Incrémentation de $i
    }
    echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
     }                                       // des sous-catégories en utilisant la valeur j
    ?>
            </select>
            <select size="1" name="souscat" dir="ltr">
            </select>
          </p>
          <p>&nbsp; </p>
        </form> 
     
      </td>
    </tr>
    <tr>	
    	<td width="">
    			  <div id="scat" dir="ltr"> </div>		  
    			  </td></tr>
    </body>
    </html>
    ma table wilaya contient les 2 champs id_wilaya et wilayalib
    la table commune contient les 3 champs: id_com,comlib,id_wilaya

    voila une idee svp?? merci davance

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Par défaut Merci
    Citation Envoyé par gandalf76fr Voir le message
    Merci pour la piste, ça m'a bien servi !

    Aurélien

Discussions similaires

  1. récupérer la valeur d'une liste déroulante dynamique
    Par grinder59 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 23/01/2006, 17h51
  2. Liste déroulante dynamique
    Par Screw16 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/10/2005, 20h37
  3. [HTML] liste déroulante dynamique
    Par lacousinee dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/08/2005, 20h51
  4. Liste déroulante dynamique ?
    Par Regis.C dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 12h09
  5. [FORMULAIRE] Liste déroulante dynamique
    Par bchristo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/01/2005, 10h07

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