[AJAX] mon retour XML est toujours NULL
Bonjour tout le monde,
J'ai cette liste de sélection :
Code:
1 2 3 4 5 6 7 8 9
| <select name="listChoix_annee" onchange="affichage(this.value)">
<option>Choisissez une année</option>
<option value="General">Général</option>
<option value="BA1">BA1</option>
<option value="BA2">BA2</option>
<option value="BA3">BA3</option>
<option value="MA1">MA1</option>
<option value="MA2">MA2</option>
</select> |
Sur chaque changement, j'appelle une fonction nommée affichage et je lui passe la valeur choisie de la liste de sélection.
Voici le code de mon fichier javascript :
Code:
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 affichage(annee)
{
//alert(annee);
//je crée un objet de type XMLHTTPREQUEST (j'appelle la fonction)
var xhr = getXMLHttpRequest();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
//alert(xhr.readyState);
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0 ) )
{
xmlDoc=xhr.responseXML;
if(xmlDoc!=null)
{
document.getElementById("td_annee_de_cours").innerHTML=xmlDoc.getElementsByTagName("annee_cours")[0].childNodes[0].nodeValue;
document.getElementById("td_id").innerHTML=xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
document.getElementById("td_date").innerHTML=xmlDoc.getElementsByTagName("date")[0].childNodes[0].nodeValue;
document.getElementById("td_date_expiration").innerHTML=xmlDoc.getElementsByTagName("date_validite")[0].childNodes[0].nodeValue;
document.getElementById("td_Titre").innerHTML=xmlDoc.getElementsByTagName("titre")[0].childNodes[0].nodeValue;
document.getElementById("Corps").innerHTML=xmlDoc.getElementsByTagName("corps")[0].childNodes[0].nodeValue;
document.getElementById("td_auteur").innerHTML=xmlDoc.getElementsByTagName("piece_jointe")[0].childNodes[0].nodeValue;
document.getElementById("td_lien").innerHTML=xmlDoc.getElementsByTagName("auteur")[0].childNodes[0].nodeValue;
document.getElementById("td_piece_jointe").innerHTML=xmlDoc.getElementsByTagName("lien")[0].childNodes[0].nodeValue;
}
else
{
alert("le retour est null");
}
}
}
//Pour montrer une erreur, je pourrais retirer /PENDU et faire un alert de status
xhr.open("POST","../AJAX/affichage.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("annee="+annee);
} |
J'arrive dans la fonction, l'alerte que j'ai mis en commentaire me l'a prouvé.
Je passe donc une information (annee) au fichier php dont voici le code :
Code:
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
| <?php
header('Content-Type: text/xml');
header("Cache-Control: no-cache, must-revalidate");
//A date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
include('../PHP/connexion.php');
$sql = "SELECT * FROM messages WHERE Annee = '".$_POST['annee']."' ORDER BY ID DESC";
//echo $sql;
$req = mysql_query($sql);
//echo $req;
//include('../index/regreplace.php');
echo '<?xml version="1.0" encoding="ISO-8859-1"?>
<information>';
while($row = mysql_fetch_array($result))
{
echo "<annee_cours>" . $row['Annee'] . "</annee_cours>";
echo "<id>" . $row['ID'] . "</id>";
echo "<date>" . $row['Date'] . "</date>";
echo "<date_validite>" . $row['Date_Validite'] . "</date_validite>";
echo "<titre>" . $row['Titre'] . "</titre>";
echo "<corps>" . $row['Corps'] . "</corps>";
echo "<piece_jointe>" . $row['Piece_jointe'] . "</piece_jointe>";
echo "<auteur>" . $row['Auteur'] . "</auteur>";
echo "<lien>" . $row['Lien'] . "</lien>";
}
echo "</information>";
}
?> |
Dans le fichier js, j'ai fait ce test :
J'obtiens à chaque fois l'alerte me disant que mon retour est null.
Sauriez-vous me dire pourquoi j'obtiens à chaque fois un retour null ?
Merci d'avance.
beegees