Bonjour,
J'ai réalisé un bout de code pour avoir automatiquement les villes et le département en fonction d'un code postal.
Le problème est que lorsque mon code s'execute, mon navigateur se bloque entièrement...
De plus, je veux afficher un message "Patientez svp..." dans la liste déroulante des villes mais cela marche qu'avec Firefox, pas avec IE...
Voici mon code js :
Merci pour 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
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 <script language="javascript"> function ajax() { codepostal=document.create_account.postcode.value; liste=document.create_account.city; if (codepostal.length == 5) { var xhr=null; //Firefox if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } //IE else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } //affichage du message d'attente liste.selectedIndex=0; liste.item(0).value="0"; liste.item(0).text="Patientez svp..."; //on définit l'appel de la fonction au retour serveur xhr.onreadystatechange = function() { recherche(xhr); }; //appelle du fichier insee.xml xhr.open("GET", "http://.../insee.xml",true); xhr.send(null); return false; } } function recherche(xhr) { var docXML= xhr.responseXML; //on récupère les villes var villes = docXML.getElementsByTagName("Commune"); //on récupère les départements var dpt = docXML.getElementsByTagName("Departement"); //on récupère les codes postaux var cp = docXML.getElementsByTagName("Codepostal"); //on récupère le code postal saisi var code = document.create_account.postcode.value; departement = null; liste=document.create_account.city; j=1; tabVilles=new Array(); tabVilles[0]="Choisissez votre ville"; //boucle pour récupérer les villes et le département correspondant au code postal saisi for (i=0;i<villes.length;i++) { if(cp.item(i).firstChild.data==code) { tabVilles[j] = villes.item(i).firstChild.data; j++; departement = dpt.item(i).firstChild.data } } liste.length=j; //si on a qu'une ville on l'affiche par défaut if(liste.length==2) {liste.selectedIndex=1;} //sinon on se place sur la première valeur : "Choisissez votre ville" else liste.selectedIndex=0; //boucle pour remplir la liste déroulante des villes for (k=0;k<j;k++) { liste.options[k].value=k; liste.options[k].text = tabVilles[k]; } //affichage du département dans le champ de texte departement document.create_account.state.value=departement; } </script>
Partager