Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 09h26   #1
Invité de passage
 
Inscription : février 2004
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 2
Points : 1
Points : 1
Par défaut IE6:impossible de recuperer les parametres envoyés par xhr.send (POST)

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 :
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 :
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 :
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();
?>
netmanouch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h47.


 
 
 
 
Partenaires

Hébergement Web