Bonsoir,

Je débute avec Ajax et voilà mon problème :
J'ai créé ma page avec un select qui se construit avec une sélection précédente.

J'ai créé un code javascript qui fait appel à un fichier php pour procéder à une requête SQL pour remplir ce select.

Extrait HTML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<table id="tab">
<tr>
<td>
<select id="choix" onchange="choix(document.getElementById('choix').value)">
  <option>Choix 1</option>
  <option>Choix 2</option>
</select>
 
<select name="test">
</select>
</td>
</tr>
</table>
En gros mon javascript :
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
function choix(choix) {
	// Script AJAX
	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; 
	};
	//on définit l'appel de la fonction au retour serveur
	xhr.onreadystatechange = function() { ajax(xhr); };
 
	//on appelle le fichier
	xhr.open("GET", "ajax.php?choix="+choix, true);
	xhr.send(null);
}
 
function ajax(xhr) {
	if (xhr.readyState == 4) {
		document.getElementById('tab').elements['test'].innerHTML = xhr.responseText;
	};
}
Et mon fichier php retourne la chose suivante (après la requête SQL qui va bien avec un WHERE prenant 'choix' en paramètre et le while ($row) qui va bien aussi) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo "<option>$row[intitulé]</option>";
Alors ca fonctionne impec sous FF, sous IE7 à la première ouverture de la page le readyState passe bien à 4 mais il n'affiche rien dans le select...
Quelqu'un a-t-il une piste ?

D'avance merci !!!!

PS : j'ai essayé en commentant var xhr = null; et xhr = false; mais ça n'a rien changé...