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 :
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');
	}
}
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
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);
?>
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
 
var docXML= xhr.responseXML;		
		var items = docXML.getElementsByTagName("eleve");
		var mydiv = document.getElementById("eleves");
		alert(items.length);
Je n'obtiens qu'une taille de 0 !
D'où peut venir mon erreur.

Merci d'avance