Bonjour,
Je débutes avec Ajax et je me retrouve avec un problème. Il semble que responseXML ne me renvoie rien. Voici mon code :
et mon fichier php :
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 function Ajax(value) { var xhr=null; var index=0; if (value.ListeClasse.selectedIndex != 0) { index=value.ListeClasse.options[value.ListeClasse.selectedIndex].value; } if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function() { alert_ajax(xhr); }; //on appelle le fichier reponse.txt xhr.open("GET", "http://localhost/comptefse/reponse.php?idg="+index, true); /*xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");*/ xhr.send(null); } function alert_ajax(xhr) { if (xhr.readyState==4) { var docXML= xhr.responseXML; var items = docXML.getElementsByTagName("eleve"); var mydiv = document.getElementById("eleves"); alert(items.length); //on fait juste une boucle sur chaque élément "donnee" trouvé for (i=0;i<items.length;i++) { alert("test"); var oPar=mydiv.createElement("p"); var t=document.createTextNode(items.item(i).firstchild.firstchild.data); oPar.appendChild(t); //alert (items.item(i).firstChild.data); } alert('fini'); } }
Lorsque je vérifie mon fichier, j'obtiens bien un fichier xml non vide avec des informations. Mais lorsque je fais :
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
46
47
48
49
50
51
52
53
54
55
56
57 <?php header('Content-Type: text/xml; charset=iso-8859-1'); $text = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"; require_once('Connections/MyConnect.php'); if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $Idg_SelectEleves = "1"; if (isset($_GET['idg'])) { $Idg_SelectEleves = $_GET['idg']; } mysql_select_db($database_MyConnect, $MyConnect); $query_SelectEleves = sprintf("SELECT P.* FROM personne P INNER JOIN apartenance A ON A.Personne=P.IdPersonne INNER JOIN Groupe G ON A.Groupe=G.IdGroupe WHERE A.Groupe=%s", GetSQLValueString($Idg_SelectEleves, "int")); $SelectEleves = mysql_query($query_SelectEleves, $MyConnect) or die(mysql_error()); $row_SelectEleves = mysql_fetch_assoc($SelectEleves); $totalRows_SelectEleves = mysql_num_rows($SelectEleves); $text=$text."<document>\n"; do { $text=$text."<eleve id='".$row_SelectEleves['IdPersonne']."'>\n"; $text=$text."<nom>".$row_SelectEleves['Nom']."</nom>\n"; $text=$text."<prenom>".$row_SelectEleves['Prenom']."</prenom>\n"; $text=$text."</eleve>\n"; } while ($row_SelectEleves = mysql_fetch_assoc($SelectEleves)); $text=$text."</document>\n"; $handle=fopen('test.xml','a'); fwrite($handle,$text); fclose($handle); echo $text; mysql_free_result($SelectEleves); ?>
Je n'obtiens qu'une taille de 0 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var docXML= xhr.responseXML; var items = docXML.getElementsByTagName("eleve"); var mydiv = document.getElementById("eleves"); alert(items.length);
D'où peut venir mon erreur.
Merci d'avance
Partager