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 : 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
 
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);
}