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 :

Afficher dynamiquement une liste deroulante


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Afficher dynamiquement une liste deroulante
    salut à tous.
    Je code sous Dreamweaver avec php5/ MySQL.

    j'ai un problème de filtre de ville suivant le pays choisi. Je m'explique: pays et ville sont des listes déroulantes venant d'une BD. Lorsqu'on clique sur un pays, la liste des villes doit automaiquement se raffraichir et ne doit etre que celles correspondant au pays selectionné dans le champs pays. En d'autres termes, dès qu'on clique sur un autre pays, les villes se mettent automatiquement à jour.

    SVP aidez moiu car ce pb me tracassse depuis hier.

    NB. j'arrive à loa faire avec des données statiques à partir de javascrip.
    suis informatienne en quete de plus de connaissance à travers le monde entier.

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Il y a pas mal de posts dans le forum parlant de la manière de lier deux listes déroulantes en php/javascript.

    La plus simple étant de créer la premiere fois la liste déroulante des pays. On associe un évènement javascript onchange qui va poster le formulaire quand la liste est modifiée.
    Ca recharge alors le meme script qui va générer la seconde liste contenant les bonnes villes.
    Utilises la fonction rechercher du forum pour avoir des exemples précis.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut affichage dynamique
    Merci de ta réponse mais toutes mes fouilles sont infructueuses depuis ce matin. Le véritable problème étant que les données de ville doivent aussi venir de la bd.

    Voilà les scripts utilisés:
    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
    <script language="JavaScript">
     
    function verifChoixPays(f)
      {
      if (document.form.pays.value == "0")
        {
        alert('Vous devez tout d\'abord choisir un pays!');
        document.form.pays.focus();
        }
      }
     
    </script>
     
    //pour selectionner les villes correspondant au pays cliqué
    <?php
    function remplirVilles($pays) 
    {
     
    print '<td><select name="ville" size="1" onFocus="verifChoixPays(form);">'; 
    print '<option value="0" selected> choisissez une ville </option>'; 
    // pour chaque pays, on selectionne toutes les villes correspondantes
    $req1=" SELECT distinct ville_arrivee FROM vol where  ville_depart='$ville_depart' ORDER BY ville_arrivee " ;
    	$rs1 = new Recordset();
    	$rs1->Open ($req1, $bd, __LINE__);
    	//print $req1;					
    	if(!$rs1->EOF)  
    	{  
    	while(!$rs1->EOF)
    	{
    	$ville = $rs1->Field("ville",__LINE__);
    	print "<option value=\"$ville\">$ville</option>  ";
    	$rs1->Movenext();
    	}	
    	} // fin if 
    	print "</select></td>" ;
                }					
    ?> 
     
     
    // pour afficher les pays, puis filtré ses villes avec onChange
     <form name="form" method="post" action="fichier_front_office_recherche_hotel.php" id="form" " > 
    <table width="80" cellspacing="10" cellpadding="4" align="center" bgcolor="#FFFFFF">
    <tr>
    	<td bgcolor="#CCCC99">Pays * :</td>
    	<td >&nbsp;</td>
    	<td bgcolor="#CCCC99">Ville * :</td>
    </tr>
    <tr>
    <td> <select name="ville_depart" size="1" onChange="remplirVilles(this.pays.value);">
    	<option value="0" selected> choisissez un pays </option>  	
     
           <?php	
     
    	$req=" SELECT distinct ville_depart FROM hotel ORDER BY ville_depart" ;
    		$rs = new Recordset();
    		$rs->Open ($req, $bd, __LINE__);
    		if(!$rs->EOF) // si la requete n'est pas vide 
    		{
    		while(!$rs->EOF) // tant qu'on a pas atteint le dernier enregistrement
    		 {
    		$pays = $rs->Field("pays",__LINE__); // on recupere le pays
    		print "<option value=\"$pays\">$pays</option>  ";		
    		$rs->Movenext(); // on passe au pays suivant
    				}	
    		}
    		?> 
    		</select>
    		</td>				
     
    </tr>
    </table>

    Avec ça, j'obtiens bien la liste des pays mais rien pour les villes
    suis informatienne en quete de plus de connaissance à travers le monde entier.

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/08/2007, 14h36
  2. Réponses: 3
    Dernier message: 10/06/2007, 21h53
  3. afficher une liste deroulante après une selection
    Par zana74 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 04/08/2006, 17h18
  4. Réponses: 5
    Dernier message: 10/05/2006, 21h39
  5. [Rico] Afficher depuis d'une liste deroulante (PHP+AJAX)
    Par maxis dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 27/02/2006, 12h47

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