Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/12/2007, 10h15   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 2
Points : 2
Par défaut 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 :
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 :
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 :
1
2
3
4
5
 
<exemple>
<donnee>Bonjour</donnee>
<donnee>Monde</donnee>
</exemple>
lutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 08h37   #2
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 2
Points : 2
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!
lutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 13h23   #3
Membre confirmé
 
Homme Benjamin Rouxel
Développeur informatique
Inscription : avril 2007
Messages : 238
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Rouxel
Âge : 25
Localisation : France, Côtes d'Armor (Bretagne)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 238
Points : 228
Points : 228
Envoyer un message via MSN à psylox
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
__________________
Linux because rebooting is just for adding medias
psylox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 14h19   #4
Membre habitué
 
Inscription : septembre 2007
Messages : 169
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 169
Points : 116
Points : 116
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.
__________________
Cartes Pokémon, Yugioh, Magic ?
Communauté d'échange
kangaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 14h49   #5
Membre confirmé
 
Homme Benjamin Rouxel
Développeur informatique
Inscription : avril 2007
Messages : 238
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Rouxel
Âge : 25
Localisation : France, Côtes d'Armor (Bretagne)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 238
Points : 228
Points : 228
Envoyer un message via MSN à psylox
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
__________________
Linux because rebooting is just for adding medias
psylox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 09h04   #6
Invité de passage
 
Inscription : octobre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 7
Points : 2
Points : 2
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 :
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
lutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 13h35   #7
Membre confirmé
 
Homme Benjamin Rouxel
Développeur informatique
Inscription : avril 2007
Messages : 238
Détails du profil
Informations personnelles :
Nom : Homme Benjamin Rouxel
Âge : 25
Localisation : France, Côtes d'Armor (Bretagne)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 238
Points : 228
Points : 228
Envoyer un message via MSN à psylox
Tu peux ajouter une vérification sur le status, afin de t'assurer qu'il n'y a eu aucune erreur.
Code :
1
2
 
if(xhr.status == 200)
__________________
Linux because rebooting is just for adding medias
psylox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h05.


 
 
 
 
Partenaires

Hébergement Web