Salut,
J'essaie de remplir dynamiquement une liste d�roulante suite � une requ�te HTTP. Cette requ�te me retourne une r�ponse correcte. Seulement le script est ex�cut� 2 fois sans raison apparente. Si je place une alert() n'importe o� dans le script, il ne s'ex�cute qu'une fois!!!
Le r�sultat c'est que ma liste est doubl�e. D'ailleurs on le constate avec ma variable test initialis�e � 0 et incr�ment�e dans la fonction appel�e par l'�v�nement (SendQuery).
Si j'ai une alert test = 1, si je n'en mets pas test passe � 2!
Voici le code:
Code : S�lectionner tout - Visualiser dans une fen�tre � part <input type="text" name="List0" class="saisie" size=10 maxlength="8" ID="Text8" onkeyup="SendQuery(this.value);">Voyez-vous ce qui ne va pas?
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 /***********************************************/ /**** Liste emploi ****/ /***********************************************/ function Initialize() { try { req= new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(oc) { req=null; } } if(!req &&typeof XMLHttpRequest!="undefined") { req = new XMLHttpRequest(); } } var test = 0; function SendQuery(arg) { if (arg!="" && arg.length==8) { test++; Initialize(); var url = "emploi_lst.asp?arg=" + arg; if (req!=null) { req.onreadystatechange = Process; req.open("GET", url, true); req.send(null); } } else { HideEmploi(); } } function Process() { if (req.readyState == 4) { if (req.status == 200) { if(req.responseText=="") { HideEmploi(); } else { ShowEmploi(); AffEmploi(req.responseText); } }/* else { document.getElementById("Emploi0").innerHTML = "Un problème internet est survenu:" + req.statusText; }*/ } } function HideEmploi() { document.getElementById('Emploi0').style.display = "none"; document.getElementById('emploi_saisi').style.display = "none"; } function ShowEmploi() { document.getElementById('Emploi0').style.display = ""; document.getElementById('emploi_saisi').style.display = ""; } function AffEmploi(requete) { var tab = requete.split("##"); var exist = eval(tab[0]); var id = eval(tab[1]); var lib = eval(tab[2]); if (id[0] && lib[0]) { var element = document.createElement("option"); element.appendChild(document.createTextNode('')); element.value = 0; document.getElementById('Emploi0').appendChild(element); for (i in id) { var element = document.createElement("option"); element.appendChild(document.createTextNode(lib[i] +' '+ test)); // ON CONSTATE ICI QUE TEST RESTE A 1 OU PASSE A 2 element.value = id[i]; document.getElementById('Emploi0').appendChild(element); } } else { document.getElementById('Emploi0').removeChild(); HideEmploi(); } }
Merci par avance.
note: le code n'est pas fini, veuillez s'il vous pla�t ne pas vous attarder sur d'autres probl�mes �ventuels.






R�pondre avec citation






Partager