La méthode POST en javascript

Fermé
milou88 Messages postés 2 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 4 juin 2009 - 4 juin 2009 à 16:54
milou88 Messages postés 2 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 4 juin 2009 - 4 juin 2009 à 17:33
Bonjour,

J'ai deux listes déroulantes "pathologie générale" et "pathologie secondaire" liées par ce javascript

			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 du bouton
			*/
			function go_RchRapLiee(){
				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('pathologie_sec').innerHTML = leselect;
					}
				}

				// Ici on va voir comment faire du post
				xhr.open("POST","RchRapLiee.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
				// ici, la pathologie
				sel = document.getElementById('pathologie');
				idpathologie = sel.options[sel.selectedIndex].value;
				xhr.send("idpathologie="+idpathologie);
			}



Mais il semble qu'il ne renvoie pas la pathologie générale à RchRapLiee.php qui doit l'utiliser pour générer les <option> de la seconde liste: celle-ci reste donc VIDE!

<?php

	
echo $_POST['idpathologie'];
	if(isset($_POST["idpathologie"]))
	{
		mysql_connect("localhost","root","");
		mysql_select_db("education_therapeutique");
		$pathologie = mysql_real_escape_string(htmlspecialchars($_POST['idpathologie'],ENT_QUOTES));
		$res_req="SELECT pathologie_sec 
					FROM document 
						WHERE NOT pathologie_sec='' 
							AND pathologie ='$pathologie' GROUP BY pathologie_sec ORDER BY pathologie_sec ASC";
		$res = mysql_query($res_req);
		while($row = mysql_fetch_assoc($res))
		{
			echo "<option>".$row["pathologie_sec"]."</option>";
		}
	}
	echo"<option>Toutes</option>";
	echo "</select>";

?>


Merci d'avance pour toute précision,

MLN
A voir également:

1 réponse

milou88 Messages postés 2 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 4 juin 2009
4 juin 2009 à 17:33
Finalement, mon problème ne semble pas se situer au niveau du POST mais plutôt de l'objet 'xhr' qui est vide et par conséquent 'idpathologie' est aussi vide. J'accuse IE !! et son ActiveXObject !!

Comment faire en sorte que 'xhr' prenne bien la valeur sélectionner de la liste 'pathologie'?
0