[AJAX] ajax et les lecture de noeuds
Bonjour,
J ai creer une requete mysql en php qui me remplis un script xml dans une page nomee deroulant.php
de ce type:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <exemple>
<donnee>
<id>1</id>
<res>test1</res>
<id>2</id>
<res>test2</res>
<id>3</id>
<res>test3</res>
<id>4</id>
<res>test4</res>
</donnee>
</exemple> |
puis j ai integrer la fonction submitform qui est appeler au clic d'un lien ainsi que la fonction kajax(xhr) appeler par la fonction precedente et qui permet de gerer le traitement du xml recut. Ces 2 fonction ainsi que le lien d'appel se trouve dans la page test.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
fonction submitform()
var xhr=null;
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//on définit l'appel de la fonction au retour serveur
xhr.onreadystatechange = function() { kajax(xhr); };
//on appelle le fichier reponse.txt
xhr.open("GET", "deroulant.php", true);
xhr.send(null);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function kajax(xhr)
{
var docXML= xhr.responseXML;
var items = docXML.getElementsByTagName("donnee");
//items recoit normalement les differents noeuds ' donnee'
alert (items.length);
//ici l alert retourne 4 car il y a 4 noeuds "donnee"
totos=toto.firstChild.data;
tata=toto.lastChild.data;
alert (toto);
alert (tata);
} |
Le probleme c'est que alert (toto) s'affiche corectement et affiche bien l'id mais tata qui devrait afficher res affiche aussi l'id .
J ai tester aussi avec
Code:
1 2 3
|
var toto=items.item(1).firstChild.childNodes[0];
var tata=items.item(1).firstChild.childNodes[1]; |
et la toto s'affiche correctement mais tata ne saffiche pas, comme si le noeud res n existe pas.
Pourtant la page deroulant.php affiche correctement le xml.
Pourquoi cela ne marche pas??
Merci d'avance pour les infos et vos aides!!
tiger63
Ke le tigre soit en toi!!