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

AJAX Discussion :

[AJAX] liste deroulante avec Ajax


Sujet :

AJAX

  1. #1
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut [AJAX] liste deroulante avec Ajax
    Bonjour a tous,
    j'ai de petits soucis avec ajax. Je dois faire une liste deroulante contenant une liste de secteurs (cahque secteur contient des zones et chaque zones des sous-zones) de sorte que lorsque je selectionne un secteur de la liste le menu deroulant affichant les zones n'affiche que ces appartenant au secteur choisit et ainsi de suite.
    Ce la marche bien pour secteur et zones mais lorsque je choisi une zone les sous-zones ne s'affichent pas.
    voici les codes que j'utilise.
    page test.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <table id="maTable">
    					<tr class="tab_bg_2" id="commune">
    						<td align='left'>Secteurs: &nbsp;</td>
    						<td align='left'>&nbsp;	
    							<select name="idSecteur" onChange="getZone(this.value)">
    							<?
    								$rek="select * from commune;";
    								$res =mysql_query($rek);
    								$listeC='<option value="0">------</option>';
    								while($table=mysql_fetch_array($res)){
    									$listeC.="<option value=".$table['id'].">".$table[commune]."(".$table[codeCommune].")"."</option>";
    								}
    								echo $listeC;
    							?>
    							</select>&nbsp;
    						</td>
    					</tr>
     
    					<tr class="tab_bg_2" id="zone">
    						<td align='left'>Zones: &nbsp;</td>
    						<td align='left'>&nbsp;	
    							<select name="zones" onChange="getQuartier(this.value)">
    								<option value="0">Selectionnez d'abord un secteur</option>						
    							</select>
    						</td>
    					</tr>
     
    					<tr class="tab_bg_2" id="tournee2">
    						<td align='left'>Tourn&eacute;es: </td>
    						<td align='left'>&nbsp;
    							<select name="tournees" onChange="getLots(this.value)">
    								<option value="0">Selectionnez d'abord une zone</option>						
    							</select>
    						</td>
    					</tr>
    </table>
    fichier file.js
    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
     
     
    //fournit la liste des zones pour un secteur donné
    function getZone(id)
    {
    		//id=document.getElementById('idSecteur').value; alert(id);
    		texte = file('http://localhost/html/site/script.php?a=zone&id='+escape(id));	
       		var x=document.getElementById('maTable').rows;
    		var y=x[2].cells;
    		y[1].innerHTML= texte;
    }
     
    //la liste des tournées disponibles pour une zone donnée
    function getTournees(id)
    {
    		var idSecteur=document.getElementById('idSecteur').value;
    		texte = file('http://localhost/html/site/script.php?a=tournee&idSecteur='+escape(idSecteur)+'id='+escape(id));	
       		var x=document.getElementById('maTable').rows;
    		var y=x[1].cells;
    		y[1].innerHTML= texte;
    }
     
     
    function file(fichier)
    {
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
    }
    le fichier script.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    $id=$_GET['id'];
    $a=$_GET['a'];
     
    if($a=="zone"){
    	$rek="select DISTINCT zones.codeZone from quartiers,commune,abonnes,zones where quartiers.id_commune=commune.id and commune.id='$id' and abonnes.id_quartiers=quartiers.id and zones.id_abonnes=abonnes.id;";
    	$res =mysql_query($rek);
    	$num=mysql_num_rows($res);
    	if($num){
    		$listeQ="<select><option value=\"0\">-----------</option>";
    		while($table=mysql_fetch_array($res)){
    			$listeQ.="<option value=".$table['codeZone'].">".$table[codeZone]."</option>";
    		}
    		echo $listeQ."</select>";
     
    	}
    	else echo 'aucun resultat';
    }
     
     
    if($a=="tournee"){
    $idSecteur=$_GET['idSecteur'];
    	$rek="select DISTINCT tournees.codeTournees from quartiers,commune,abonnes,zones, tournees where quartiers.id_commune=commune.id and commune.id='$idSecteur' and abonnes.id_quartiers=quartiers.id and zones.id_abonnes=abonnes.id and tournees.id_zones=zones.id and zones.codeZone='$id';"; 
    	$res =mysql_query($rek);
    	$num=mysql_num_rows($res);
    	if($num){
    		$listeQ="<select>";
    		while($table=mysql_fetch_array($res)){
    			$listeQ.="<option value=".$table['codeTournees'].">".$table[codeTournees]."</option>";
    		}
    		echo $listeQ."</select>";
     
    	}
    	else echo 'aucun resultat';
    }
    SVP j'ai besoin de votre aide.
    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    tu ne génères pas le onchange dans ta 2° liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listeQ="<select><option value=\"0\">-----------</option>";
    elle ne peut donc pas mettre à jour la 3° liste lorsque tu y sélectionnes une ligne.

    Par ailleurs, si tes select sont dans un form, tu risques d'avoir des problèmes sous IE en les générant ainsi via le innerHTML.
    Tu devrais utiliser les syntaxes DOM, en particulier celles réservées aux listes

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre averti Avatar de cyreel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 388
    Points : 324
    Points
    324
    Par défaut
    Merci pour la reponse.
    Moi je travaille sous linux alors si cela ne marce pas avec IE je crois qu'il est mieux de passer au DOM.
    thx a lot.

Discussions similaires

  1. [AJAX] liste deroulante liée ajax dur dur
    Par kate59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/02/2009, 22h34
  2. [AJAX] liste deroulante avec ajax etrange
    Par kate59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/01/2009, 11h40
  3. liste deroulante avec struts et ajax
    Par hhicham dans le forum Struts 1
    Réponses: 0
    Dernier message: 28/08/2008, 17h17
  4. [AJAX] Listes liées avec Ajax
    Par Zak_92 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/08/2007, 12h19
  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