11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un soucis avec mes requêtes ajax, j'ai suivis un certain nombre de documentation pour faire des requettes ajax et parser les xml, mais je n'arrive à rien...

Voici les deux fonctions :


function GETxml(name, value){
	var datasent = { };
	datasent[name] = value;

	$.ajax( {
		type: "GET",
        url: "core/core.php",
        data: datasent,
        dataType: "xml",
        success: displayXML,
        error: function () {alert('server problem');}
        });
}

function displayXML(xml){
	var content = '';
		$(xml).find("trackcontent").each(function(){
			content += '<tr class="song" path="' + $(this).find('path').text() + '" cover="' + $(this).find('cover').text() +' >';
			content += '<td class="isplay"></td>';
			content += '<td class="numtrack">' + $(this).find('number').text() + '</td>';
			content += '<td class="trackname">' + $(this).find('title').text() + '</td>';
			content += '<td class="artist">' + $(this).find('artist').text() + '</td>';
			content += '<td class="album">' + $(this).find('album').text() + '</td>';
			content += '<td class="duration">' + $(this).find('time').text() + '</td>';
			content += '</tr>';
		});
	$("table#playlist_display").html(content);
}



Le problème se situe au niveau du parse du xml, la fonction displayXML() est bien appelée, mais dans firefox 5 cela ne fonctionne pas, et sur ipad (je développe une application web pour ipad), ça fonctionne mais seule le premier nœud est affiché...

J'ai vu plusieurs documentations qui donne cette façon de faire, est-ce que ça serait dépressié ?

Je n'ai pas d'erreur dans la console, c'est juste que la variable content est vide, et lorsque je fais un alert dans la fonction qui remplie la variable content, elle n'est pas exécuté. Sous ipad je n'ai que le premier nœud trackcontent du xml qui est parsé, par les suivant.

Merci d'avance pour votre aide.
Modifié par Koon (30 Jun 2011 - 00:03)
Merci de ta réponse libratoi mais le problème ne vient pas de là (j'avais déjà essayé de faire comme ça, et ça ne marchait pas mieux).

Dans mon cas, l'instruction est bien envoyé, elle est sous forme d'objet [object XMLDocument] (c'est ce que j'obtiens quand je fais un alert de xml dans la fonction displayXML() ), et d'ailleurs j'ai bien un retour dans safari (le premier nœud du xml uniquement), mais rien du tout dans firefox...

J'aurais tendance à penser que le problème viendrait plutôt de $(xml).find("trackcontent").each qui ne semble pas faire ce qu'il est sensé faire...

Il existe pas une autre méthode pour parser un xml ?

(pour info, voici le xml)


<?xml version="1.0" encoding="UTF-8"?>
<trackcontent>
 <number>01</number>
 <title>Eternity</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>5:42</time>
 <path>music/kamelot/Eternity/01 Eternity.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>02</number>
 <title>Black Tower</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>4:06</time>
 <path>music/kamelot/Eternity/02 Black Tower.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>03</number>
 <title>Call of the Sea</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>5:16</time>
 <path>music/kamelot/Eternity/03 Call of the Sea.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>04</number>
 <title>Proud Nomad</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>4:52</time>
 <path>music/kamelot/Eternity/04 Proud Nomad.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>05</number>
 <title>Red Sands</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>4:09</time>
 <path>music/kamelot/Eternity/05 Red Sands.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>06</number>
 <title>One of the Hunted</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>5:27</time>
 <path>music/kamelot/Eternity/06 One of the Hunted.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>07</number>
 <title>Fire Within</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>4:55</time>
 <path>music/kamelot/Eternity/07 Fire Within.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>08</number>
 <title>Warbird</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>5:23</time>
 <path>music/kamelot/Eternity/08 Warbird.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>09</number>
 <title>What About Me</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>4:21</time>
 <path>music/kamelot/Eternity/09 What About Me.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>10</number>
 <title>Etude Jongleur</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>0:51</time>
 <path>music/kamelot/Eternity/10 Etude Jongleur.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>11</number>
 <title>The Gleeman</title>
 <artist>Kamelot</artist>
 <album>Eternity</album>
 <time>6:20</time>
 <path>music/kamelot/Eternity/11 The Gleeman.mp3</path>
 <cover>music/kamelot/Eternity/front.jpg</cover>
</trackcontent>
<trackcontent>
 <number>01</number>
 <title>The Root of All Evil</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>8:26</time>
 <path>music/dream theater/octavarium/01 The Root of All Evil.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>02</number>
 <title>The Answer Lies Within</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>5:33</time>
 <path>music/dream theater/octavarium/02 The Answer Lies Within.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>03</number>
 <title>These Walls</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>7:36</time>
 <path>music/dream theater/octavarium/03 These Walls.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>04</number>
 <title>I Walk Beside You</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>4:29</time>
 <path>music/dream theater/octavarium/04 I Walk Beside You.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>05</number>
 <title>Panic Attack</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>8:13</time>
 <path>music/dream theater/octavarium/05 Panic Attack.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>06</number>
 <title>Never Enough</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>6:47</time>
 <path>music/dream theater/octavarium/06 Never Enough.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>07</number>
 <title>Sacrificed Sons</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>10:43</time>
 <path>music/dream theater/octavarium/07 Sacrificed Sons.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<trackcontent>
 <number>08</number>
 <title>Octavarium</title>
 <artist>Dream Theater</artist>
 <album>Octavarium</album>
 <time>24:00</time>
 <path>music/dream theater/octavarium/08 Octavarium.mp3</path>
 <cover>music/dream theater/octavarium/cover.jpg</cover>
</trackcontent>
<librarysize>La playlist contient 2 heures 7 minutes et 9 secondes de musique.</librarysize>

Modifié par Koon (30 Jun 2011 - 14:51)