Bonjour, j'ai fait une fonction qui a pour but de traiter en boucle des données et les afficher sous certaines conditions. Voici le code:
Donc en gros lors de la première exécution de la boucle tout va bien, tous les noms sont affichées par la popup alert(reponse) mais à partir de la deuxième exécution seul le premier élément de "joueurs" est affiché...le comble pour un script sensé gérer les modifications de la bdd en temps réel.
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 function req1(xhr) { //Traitement des données de la requête type 1 = information sur la liste des joueurs présents if (xhr.readyState==4) { var docXML = xhr.responseXML ; var joueurs = docXML.getElementsByTagName("nom") ; //On recupère le document et on crée la variable joueurs qui contient tous les joueurs var reponse = null ; //Variable qui sera utile par la suite for(i=0;i<joueurs.length;i++) { //Boucle: tant qu'il reste des éléments non traités dans joueurs reponse = joueurs.item(i).firstChild.data ; //On récupère les données du nom alert(reponse) ; var exist = false ; //variable servant à déterminer si le nom est déjà présent dans la liste for(y=0;y<liste_joueurs.length;y++) { //On utilise une boucle pour vérifier si le nom qu'on vient de récupérer est déjà présent dans la liste ou non if(liste_joueurs[y] == reponse) { exist = true ; //Si on trouve le nom dans la liste la variable exist passe à TRUE ce qui empêche le nom d'apparaitre par la suite continue ; } } if (exist == false){ //Si le nom n'est pas encore dans le tableau on l'y ajoute var pos = liste_joueurs.length ; //On détermine la position dans le tableau que le prochain enregistrement doit avoir liste_joueurs[pos] = reponse ; //On ajoute le joueur à la liste(tableau liste_joueurs) document.getElementById("liste").appendChild( document.createTextNode( reponse ) ); if (i!=joueurs.length) { //Tant qu'on n'est pas à la dernière ligne, on rajoute un <br> à la fin de la ligne document.getElementById("liste").appendChild( document.createElement("br") ); } } } } }
Avez vous des idées de l'élément qui cloche?
Partager