IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] ajax et les lecture de noeuds


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
     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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!!

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    tu n'aurasi pas un probème d'interprétation des Noeuds ? tu es sous quel navigateur ?

    fais une recherche sur ce forum avec NodeCleaner ...
    http://javascript.developpez.com/faq...M#DOMIEFirefox

  3. #3
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut ptite question :)
    Merki pour ta reponse mais je met ce code ou?? et je l'apelle quand? a chaque fois que je change de noeuds c est ca??

    tiger63
    Ke le tigre soit en toi

  4. #4
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut
    Et en plus si c'etait des noeuds vide, alors pourquoi dans
    retourne 4 et donc s'il y avait des noeuds vides aux derniere feuilles y en aurai aussi ici non?? et la visiblement ce n est pas le cas!

    Tu as d autre idees de solution??

    Tiger63
    ke le tigre soit en toi!!

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ben fait direct un alert du item.innerHTML ou tagName pour voir d'ou vient le problème ...

  6. #6
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut
    var docXML= xhr.responseXML;
    alert(docXML.innerHtml+"docXML");
    //retourne undefined

    var items = docXML.getElementsByTagName("donnee");
    alert(items.innerHTML+"items");
    //retourne undefined


    var toto=items.item(1).firstChild.innerHtml;
    alert (toto+" item.item(1).firstchild.innerhtml");
    //retourne undefined

    var tutu=docXML.tagName;
    alert (tutu +" docXML tagname");
    //retourne undefined

    var tata=items.tagName;
    alert (tata +" items tagname");
    //retourne undefined
    ....



    que ce soit avec tagName ou innerHTML le resultat est le meme, ca retourne toujours undefined

    tier63
    Ke le tigre soit en toi

  7. #7
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut
    voici les divers documents (deroulant.php, test.php et un screen de ce que fait deroulant.php recuperable en tapant deroulant.php comme url^^

    tiger63
    ke le tigre soit en toi
    Fichiers attachés Fichiers attachés

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    regarde dans les propos de codes sources il y a une librairie pour la manip des balises xml en ajax ...

  9. #9
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut
    bon bin j ai enfin trouvé une solution , merci pour ton aide spacefrog!!
    En fait finalement j ai fait ceci !!
    pour ce qui est du xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <exmple>
    <donnee id="1" res="toto">
    <donnee id="2" res="tutu">
    ...
    </exemlple>
    Pour ce qui est du code javascript, j ai fait ceci:
    la fonction submitForm ne change pas, et la fonction kajax() devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var docXML= xhr.responseXML;
    	var items = docXML.getElementsByTagName("donnee");
    	nb=items.length;
    	for(i=1;i<=nb;i++)
    	{
     
    		 e = items.item(i);
    		res=e.getAttribute("res")
    		id=e.getAttribute("id");
     
    	}
    Et maintenant je recupere bien le res et l id de chaque noeud donnee

    voili voilou!!


    Tiger63
    ke le tigre soit en toi!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TreeGrid/Ajax] Charger dynamiquement les noeuds de l'arbre
    Par verbose dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 20/03/2013, 11h41
  2. AJAX : Problème avec les accents...
    Par @drien dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/01/2006, 14h33
  3. [AJAX] Ajax et les caractères spéciaux
    Par Moloc'h dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/01/2006, 14h02
  4. [AJAX] Ajax et les accents
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/12/2005, 20h09
  5. [AJAX] Problèmes avec les caractères accentués
    Par marti dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 26/10/2005, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo