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:
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
37 <table id="maTable"> <tr class="tab_bg_2" id="commune"> <td align='left'>Secteurs: </td> <td align='left'> <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> </td> </tr> <tr class="tab_bg_2" id="zone"> <td align='left'>Zones: </td> <td align='left'> <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ées: </td> <td align='left'> <select name="tournees" onChange="getLots(this.value)"> <option value="0">Selectionnez d'abord une zone</option> </select> </td> </tr> </table>
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
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); }
SVP j'ai besoin de votre aide.
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'; }
Merci
Partager