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

AJAX Discussion :

[AJAX] ajax et fichier xml, n'affiche rien


Sujet :

AJAX

  1. #1
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut [AJAX] ajax et fichier xml, n'affiche rien
    Bonjour à tous

    Je tente de reproduire ça http://nicolaspied.developpez.com/ajax-premiers-pas/#L1

    mais ça ne fonctionne pas des masses, rien ne n'affiche

    voici le code :

    le fichier 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function handleHttpResponse() {
     
     
    // On démarre
        if(window.XMLHttpRequest){
        // Pour tous les navigateurs
            xhr = new XMLHttpRequest();
        }
        else{
        if(window.ActiveXObject){
          // Pour IE
              xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        }
     
    /* La fonction handleHttpResponse est fournit plus loin dans cet article */
    xhr.onreadystatechange = handleHttpResponse;
    var url = "items.xml";
    xhr.open("GET", url, true);
    /* A préciser pour les requêtes de type POST
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    */
    xhr.send(null);
        if(xhr.readyState == 4 && xhr.status == 200) {
            /* xhr.responseXML permet d'obtenir le fichier XML
               xhr.responseText aurait retourné le fichier sous format texte */
            response     = cleanXML(xhr.responseXML.documentElement);
     
    	   /* Récupérer la liste des items donc la liste des DVD */
    var items    = response.getElementsByTagName("item");
    var html     = ''; /* Présentation HTML de la liste des DVD */
    /* Nombre de DVD */
    count        = items.length;
    for(i = 0; i < count; i++) { /* POUR CHAQUE item */
        html += '<div class="item">';
        html += '<h1>' + items[i].getElementsByTagName("title")[0].firstChild.nodeValue + '</h1>';
        html += '<div class="author">R&eacute;alisateur : ';
        html += items[i].getElementsByTagName("director")[0].firstChild.nodeValue + '</div>';
        html += '<div class="price">Prix : ';
        html += items[i].getElementsByTagName("price")[0].firstChild.nodeValue + ' ?</div>';
        html += '</div>';
    }
    document.getElementById('content').innerHTML += html;
        }
    }
    et le html (la partie qui nous interesse)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="content"></div>

    Suis plus habitué à utiliser ajax avec php/mysql mais là je sèche complètement

    Quelqu'un pourrait il m'aider?

    Merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.onreadystatechange = handleHttpResponse;
    Mais elle est où la fonction handleHttpResponse() ???
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    alors donc je dois la mettre à part
    du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function handleHttpResponse() {    
     if(xhr.readyState == 4 && xhr.status == 200) {        
       response     = cleanXML(xhr.responseXML.documentElement);             } }
    puis

    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 test() {     // On démarre    
     if(window.XMLHttpRequest){     // Pour tous les navigateurs         
    xhr = new XMLHttpRequest();     }    
     else{     if(window.ActiveXObject){       // Pour IE          
     xhr = new ActiveXObject("Microsoft.XMLHTTP");     }     }   /* La fonction handleHttpResponse est fournit plus loin dans cet article */ xhr.onreadystatechange = handleHttpResponse; 
    var url = "items.xml"; xhr.open("GET", url, true); /* A préciser pour les requêtes de type POST xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); */ 
    xhr.send(null);     
    if(xhr.readyState == 4 && xhr.status == 200) {         /* xhr.responseXML permet d'obtenir le fichier XML            xhr.responseText aurait retourné le fichier sous format texte */         
    response     = cleanXML(xhr.responseXML.documentElement);          /* Récupérer la liste des items donc la liste des DVD */ 
    var items    = response.getElementsByTagName("item"); 
    var html     = ''; /* Présentation HTML de la liste des DVD */ /* Nombre de DVD */ 
    count        = items.length; for(i = 0; i < count; i++) { /* POUR CHAQUE item */     
    html += '<div class="item">';    
    html += '<h1>' + items[i].getElementsByTagName("title")[0].firstChild.nodeValue + '</h1>';    html += '<div class="author">R&eacute;alisateur : ';     
    html += items[i].getElementsByTagName("director")[0].firstChild.nodeValue + '</div>';     
    html += '<div class="price">Prix : ';    
     html += items[i].getElementsByTagName("price")[0].firstChild.nodeValue + ' ?</div>';     
    html += '</div>'; } document.getElementById('content').innerHTML += html;     } }
    c'est ça?

  4. #4
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    Bon maintenant j'ai ça comme erreur :

    ReferenceError: cleanXML is not defined
    response = cleanXML(xhr.responseXML.documentElement);

    En gros, cleanXML n'est pas définit même dans le tuto. Du coup suis bloqué. J'ai cherché sur google mais rien de concluant.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 200
    Par défaut
    Bonjour,
    tu peux toujours essayer celle qui est dans allez plus loin avec AJAX et XMLHttpRequest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function clean(d){
    	var bal=d.getElementsByTagName('*');
     
    	for(i=0;i<bal.length;i++){
    		a=bal[i].previousSibling;
    		if(a && a.nodeType==3)
    			go(a);
    		b=bal[i].nextSibling;
    		if(b && b.nodeType==3)
    			go(b);
    	}
    	return d;
    }
    à renommer quand même .

Discussions similaires

  1. ajax lecture dans fichier xml sans serveur
    Par TERRIBLE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2008, 12h19
  2. [AJAX] Parser un fichier XML
    Par namstou3 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2007, 11h40
  3. [AJAX] Transmettre un fichier XML entre deux serveurs via un client
    Par quentin_ler dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/08/2007, 10h03
  4. [AJAX] requête sur fichier.xml => erreur 405 sous IE !
    Par jeje13009 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/03/2007, 21h42
  5. [AJAX] Charger un fichier XML Schema
    Par kingmandrax dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/10/2006, 10h55

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