Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Ajax] Explorer un document DOM

    12 octobre 2008 à 14:37:27

    Bonjour.

    J'essaye d'utiliser Ajax et je peine à récupérer les données.
    Selon FireBug, mon fichier XML généré par mon script PhP semble être correct.
    <?xml version="1.0" ?>
    <root>
    	<data>
    		<row>
    			<carac>force</carac>
    			<base>3</base>
    		</row>
    		<row>
    			<carac>puissance</carac>
    			<base>3</base>
    		</row>
    

    En tout cas, c'est ce que j'attends.
    J'aimerais récupérer les différents couples carac/base.
    Pour l'heure, je fais comme ça
    var root_node = xmldoc.getElementsByTagName('root').item(0);
    	alert(root_node) ;
    

    Mais mon alert me renvoit null.

    Vous auriez un ou deux conseils pour me sortir de ce pétrin ?

    Merci à vous.
    • Partager sur Facebook
    • Partager sur Twitter
      12 octobre 2008 à 15:22:07

      Déjà, ton XML n'est pas correct. Il manque la fermeture des balises root et data. Et puis pour te répondre il faudrait ton code AJAX.
      • Partager sur Facebook
      • Partager sur Twitter
        12 octobre 2008 à 17:13:12

        En fait, il manque même plein d'autres couple carac/base. J'ai pas tout mis, histoire de pas mettre un trop gros pavé. Bien évidemment, mon XML est fermé comme il faut.

        Sinon, mon code, le voilà :
        function getPtsCaste(Form,url) {
        	url += 'ajax/getPtsCaste.php' ;
        	url += '?id_caste='+Form.id_caste.value ;
        
        	if ( Form.id_caste.value == '' )
        		return false ;
        
            var httpRequest = false;
        
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                httpRequest = new XMLHttpRequest();
                if (httpRequest.overrideMimeType) {
                    httpRequest.overrideMimeType('text/xml');
                    // Voir la note ci-dessous à propos de cette ligne
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
        
            if (!httpRequest) {
                alert('Abandon  Impossible de créer une instance XMLHTTP');
                return false;
            }
            httpRequest.onreadystatechange = function() {
        		try {
        			if (httpRequest.readyState == 4) {
        				if (httpRequest.status == 200) {
        					var xmldoc = httpRequest.responseXML;
        					processData(xmldoc) ;
        				} else {
        					alert('Un problème est survenu au cours de la requête.');
        				}
        			}
        		} catch( e ) {
        			alert("Une exception s'est produite : " + e.description);
        		}
            };
            httpRequest.open('GET', url, true);
            httpRequest.send(null);
        }
        
        
        function processData(xmldoc) {
        	var root_node = xmldoc.getElementsByTagName('root').item(0);
        	var data_node = root_node.getElementsByTagName('data').item(0);
        	var rows = data_node.getElementsByTagName('row');
        
        	for ( var num_i = 0 ; num_i < rows.length ; num_i++ ) {
        		alert(rows[num_i].getElementsByTagName('carac')[0].firstChild.nodeValue) ;
        	}
        
        
        }
        


        J'ai un peu progressé dans la recherche, mais c'est toujours pas trop ça.
        • Partager sur Facebook
        • Partager sur Twitter
          12 octobre 2008 à 19:11:06

          Le fichier XML n'est pas correcte, les balises ne sont pas fermées... (root et data)
          Ça ne peut pas fonctionner comme ça...
          • Partager sur Facebook
          • Partager sur Twitter
            12 octobre 2008 à 19:54:05

            <?xml version="1.0" ?>
            <root>
            	<data>
            		<row>
            			<carac>force</carac>
            			<base>3</base>
            		</row>
            		<row>
            			<carac>puissance</carac>
            			<base>3</base>
            		</row>
            	</data>
            </root>
            


            Wow... Bon... Visiblement ça ne suffit pas de dire que c'était un extrait du XML, ni même que les balises sont fermées.

            Est-ce que là, le XML va ?
            • Partager sur Facebook
            • Partager sur Twitter
              13 octobre 2008 à 19:12:44

              Citation

              Wow... Bon... Visiblement ça ne suffit pas de dire que c'était un extrait du XML, ni même que les balises sont fermées.



              Oui, bon j'ai mal lu.. Excuse...

              Maintenant sinon tu peux te brosser pour mon aide.

              Bye. (et pense à apprendre le respect d'autrui quand même)
              • Partager sur Facebook
              • Partager sur Twitter

              [Ajax] Explorer un document DOM

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown