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:
<input type="text" name="List0" class="saisie" size=10 maxlength="8" ID="Text8" onkeyup="SendQuery(this.value);">
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();
}
} |
Voyez-vous ce qui ne va pas?
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.