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] Erreur : docXML has no properties


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [AJAX] Erreur : docXML has no properties
    Bonjour à tous,
    Etant un grand débutant en ajax j'ai voulu suivre le tuto de ce site pour mieux comprendre!

    Après avoir créer mes 3 fichiers: index.php, ajax.js et reponse.xml, j'ai lancer le script et ça a marché mais après avoir fais un tour dans ma console d'erreur de firefox j'ai constaté qu'il me sort 4 erreurs : Erreur : docXML has no properties
    je ne comprend pas d'où cela vient merci d'avance pour votre aide.

    voici mes codes

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Test</title>
    	</head>
    	<body>	
    		<script type="text/javascript" src="ajax.js"></script>	
    		<p>
    		<a href="javascript:ajax();">Vous avez le droit de me cliquer !</a>
    		</p>
    	</body>
    </html>
    ajax.js
    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
     
    function ajax()
    {
        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() { alert_ajax(xhr); };
     
        //on appelle le fichier reponse.txt
        xhr.open("GET", "reponse.xml", true);
        xhr.send(null);
    }
     
    function alert_ajax(xhr)
    {
    	var docXML= xhr.responseXML;
    	var items = docXML.getElementsByTagName("donnee")
    	//on fait juste une boucle sur chaque element "donnee" trouvé
    	for (i=0;i<items.length;i++)
    	{
    		alert (items.item(i).firstChild.data);
    	}
    }
    et response.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <exemple>
    <donnee>Bonjour</donnee>
    <donnee>Monde</donnee>
    </exemple>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjours, après plusieurs semaines d'attente je reviens upper mon post car j'ai toujours pas trouvé donc j'ai fortement besoin de votre aide!

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    essaye de faire un alert(xhr.responseText); voir si il t'affiche une erreur

    peut-etre parceque tu n'as pas mis l'en-tête : <?xml ...?> dans ton reponse.xml

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    pour débugger le plugin firebux de firefox est tres bien fait si tu l'utilise pas déjà, il te donne la ligne exacte des problèmes. Ca serait plus simpe pour t'aider.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    dans ce cas la on sait a quel ligne est l'erreur, par contre je viens de voir un truc, c'est que tu ne regarde pas le status de ton objet avant d'appeler ta fonction alert_ajax.
    J'imagine que tu veux faire ton alert une fois que la réponse est arrivé, dans ta fonction onreadystatechange tu devrais donc faire un test pour n'appeler ton alert que lorsque le status est a 4 et que tout s'est bien passé, je te laisse chercher le code, il y en a partout sur le net

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Cela fonctionne effectivement! Merci pour vos réponses
    J'ai donc fais un test pour vérifier que le status est à 4

    Voici donc la fonction qui fonctionne ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function alert_ajax(xhr)
    {
    	if (xhr.readyState==4) 
            {
                 var docXML= xhr.responseXML;
    	     var items = docXML.getElementsByTagName("donnee")
    	     //on fait juste une boucle sur chaque element "donnee" trouvé
    	     for (i=0;i<items.length;i++)
    	     {
    		     alert (items.item(i).firstChild.data);
    	     }
            }
    }
    Merci à tous

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Tu peux ajouter une vérification sur le status, afin de t'assurer qu'il n'y a eu aucune erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(xhr.status == 200)

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/10/2008, 18h07
  2. [Dojo] Erreur « elements has no properties »
    Par fayred dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 20/09/2007, 18h24
  3. [DOM] liste déroulante et erreur ".selectedIndex has no properties
    Par Henry9 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/08/2007, 20h11
  4. [AJAX] Erreur docXML has no properties
    Par wkd dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 23/05/2007, 11h20
  5. Réponses: 2
    Dernier message: 07/01/2007, 12h22

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