readyState sur undefined et affichage 4 fois
Bonjour,
Je souhaite mettre à jour une liste d'articles en fonction d'un choix de type d'article. Les fonctions ci-dessous ont déjà servi dans mon appli sans problèmes, mais je m'arrache les cheveux depuis ce matin car readyState est sur undefined, et l'alerte que j'ai provisoirement mise aus lignes 40-43 affiche 4 fois cette valeur. Le Statut est bien à 200.
Voyez-vous où il y a un problème ?
Merci d'avance pour votre aide !
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 41 42 43 44 45 46 47 48 49 50 51
|
function getXhr()
{
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{ // Internet Explorer
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
function maj_liste_articles() //quand l'utilisateur change le type d'articles à afficher
{
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
resultat = xhr.responseText;
document.getElementById('article').innerHTML = resultat;
}
else
{
alert(xhr.readystate);
}
}
// préparation du post
xhr.open("POST","ajax_index.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier ça pour le post
var typearticle = document.getElementById('typeart'); //type d'article à afficher
xhr.send("ajax_action=maj_liste_articles&typeart=" + typearticle.value);
} |