Bonjour à tous,

je rencontre une difficulté en Ajax.
J'ai un code qui consiste à lier des listes déroulantes (3 en tout).
Le code marche très bien sous Firefox mais pas sous IE6 (précision, je ne peux pas utiliser d'autre navigateur que IE6)
J'ai deux pistes :
- soit les paramètres ne sont pas envoyés lors du xhr.send (méthode POST)
- soit je récupère mal les parametres dans ma page php.

voici les codes de mes page:
envoi.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
 
<select name='rub' id='rub' onchange='go(<?php echo $_SESSION['id'];?>)'>
	<option value='-1'>---S&eacute;lectionnez une rubrique---</option>
	<?php
            $sel_rub = "SELECT * FROM menu_intranet,peut_gerer WHERE menu_intranet.id_menu = peut_gerer.id_menu AND id_user = ".$_SESSION[id]." AND niveau = 1 ORDER BY lib_menu";
            $result_rub = mysql_query($sel_rub);
            while($row_rub = mysql_fetch_assoc($result_rub)){
                echo "<option value='".$row_rub["id_menu"]."'>".$row_rub["lib_menu"]."</option>";
            }
        ?>
</select>
<br /><br />
<label>Sous-rubrique</label>
<div id='ss_rub' style='display:inline'>
    <select name='ss_rub'>
        <option value='-1'>---S&eacute;lectionnez une sous-rubrique---</option>
    </select>
</div>
<br /><br />
<label>Sous-sous-rubrique</label>
<div id='ss-ss-rub' style='display:inline'>
    <select name='ss-ss-rub'>
	<option value='-1'>---S&eacute;lectionnez une sous-sous-rubrique---</option>
    </select>
ajaxLst.jsp
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
 
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;
}
 
/**
* Méthode qui sera appelée sur le click de la 1ere liste deroulante
*/
function go(id_user){
	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){
			leselect = xhr.responseText;
			alert(leselect);
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('ss_rub').innerHTML = leselect;
		}
	}
 
	// Ici on va voir comment faire du post
	xhr.open("POST","ss_rub.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	sel = document.getElementById('rub');
	id_rub = sel.options[sel.selectedIndex].value;
	data = "id_rub="+id_rub+"&id_user="+id_user;
	xhr.send(data);
}
 
/**
* Méthode qui sera appelée sur le click de la 2eme liste deroulante
*/
function go2(id_user){
	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){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('ss-ss-rub').innerHTML = leselect;
		}
	}
 
	// Ici on va voir comment faire du post
	xhr.open("POST","ss_ss_rub.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	sel_ss = document.getElementById('ss-rub');
	id_ss_rub = sel_ss.options[sel_ss.selectedIndex].value;
	xhr.send("id_ss_rub="+id_ss_rub+"&id_user="+id_user);
}
ss_rub.php (c'est dans cette page que je n'arrive pas à recupérer mes paramètres avec IE6)
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
 
<?php
//On inclu le fichier de fonctions de connexion à la base
include "../../fonctions/php/acces_bdd.php";
 
//Connexion à la base de donnees
connecter("intranet");
echo "id_rub : ".$_POST['id_rub']." - id_user : ".$_POST['id_user'];
/*echo "<select name='ss-rub' id='ss-rub' onchange='go2(".$_POST["id_rub"].")'>";
        echo"<option value='-1'>---S&eacute;lectionnez une sous-rubrique---</option>";
if(isset($_POST["id_rub"])){
        $res = mysql_query("SELECT * FROM menu_intranet,peut_gerer WHERE menu_intranet.id_menu = peut_gerer.id_menu AND id_user = ".$_POST["id_user"]." AND pere=".$_POST["id_rub"]." AND niveau = 2 ORDER BY lib_menu");
        while($row = mysql_fetch_assoc($res)){
                ?>
		<option value='<?php echo $row["id_menu"];?>' <?php if($row['id_menu'] == $ss_rub_sel){echo 'Selected';}?>><?php echo $row["lib_menu"];?></option>
		<?php
        }
}
echo "</select>";*/
 
deconnecter();
?>