Partage
  • Partager sur Facebook
  • Partager sur Twitter

Je n'arrive pas à lier ma 4e liste déroulante

AJAX

    11 janvier 2009 à 17:26:16

    Bonjour tout le monde,

    J'ai un site où est lié trois listes déroulantes avec AJAX.

    J'essaie maintenant de lier la 4e (et dernière) liste déroulante mais je n'y arrive pas.

    Pour cela, j'ai fait ceci :

    Dans Ajax_Listes_Deroulantes_Generiques_Types.js qui est la 3e liste déroulante j'ai ajouté ceci :

    fnctcategories(document.getElementById('select_Nom_types').value);
    


    Dans la même page, je présume que je ne dois pas toucher à ceci :

    xhr2.send("MNEMONIC="+cours);
    


    J'ai créé un nouveau fichier nommé Ajax_Listes_Deroulantes_Generiques_Categories.js qui contient ce code :

    </code>
    /**
    	* Méthode qui sera appelée sur le changement de la liste déroulante types
    	*/
    	function fnctcategories(type)
    	{
    		//alert(cours);
    		var xhr3 = getxhr3();
    	//	alert(xhr3);
    		// On défini ce qu'on va faire quand on aura la réponse
    		xhr3.onreadystatechange = function()
    		{
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			//alert(xhr3.readyState);
    			//alert(xhr3.status);
    			if(xhr3.readyState == 4 && (xhr3.status == 200 || xhr3.status == 0 ) )
    			{
    				alert('cool'); //cette alerte me permet de savoir qu'on arrive au moins à cet endroit du code
    				//alert(xhr3.status);
    				
    				//******  Je ne comprends pas comment le contenu de leselect3 est connu à cet endroit alors que xhr3.open("POST","Scripts/ajaxLivre.php",true); se trouve                          plus bas 
    				//*******
    				
    				
    				leselect3 = xhr3.responseText;
    
    				
    				//alert('xhr3.responseText vaut '+xhr3.responseText);
    				//						alert(leselect3);
    				// On se sert de innerHTML pour rajouter les options a la liste
    				document.getElementById('select_Nom_types').innerHTML = leselect3; //ici, le nom du select devrait être générique !!!!
    				//alert(leselect3);
    				
    				
    			}
    		}
    	
    		// Ici on va voir comment faire du post
    		xhr3.open("POST","Scripts/ajaxCategories.php",true); //ici, on devrait rend ajaxLivre générique !!!!
    		// ne pas oublier ça pour le post
    		xhr3.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		// ne pas oublier de poster les arguments
    		// ici, l'id de l'auteur
    		xhr3.send("NOM_DU_TYPE="+type); //ici, NOM_ANNEE et annee devraient être génériques !!!!			
    	}<code type="javascript">
    
    J'ai aussi AjaxCategorie.php :
    
    <code type="javascript"><?php
    session_start();
    //print_r($_POST);
    	if(isset($_POST["MNEMONIC"]))
    	{
    
    		$conn = mysql_connect("localhost","root","mdp"); 
    		$db=mysql_select_db("pharma", $conn);
    		$res = "SELECT * FROM inscrits_en WHERE MNEMONIC = '" . $_SESSION[MNEMONIC] . "' AND TYPE_DE_COURS = '" . $_SESSION[TYPE_DE_COURS] . "'";
    		//il faut faire echo'<script LANGUAGE="JavaScript">alert("'.$res.'")... AVANT mysql_query afin d'afficher la requête sql, une variable de session pourrait ne pas être reconnue, c'est une façon facile de le voir.
    		echo'<script LANGUAGE="JavaScript">alert("'.$res.'");</SCRIPT>';	
    		$res = mysql_query($res, $conn); 
    		
    		
    			
    
    		
    		
    		$nombre = mysql_num_rows($res);
    		
    
    
    		while($row = mysql_fetch_assoc($res))
    		{
    			
    			echo "<option value='".$row["CATEGORIE"]."'>".$row["CATEGORIE"]."</option>";
    		}
    	}
    	else echo'<script LANGUAGE="JavaScript">alert("pas bon");</SCRIPT>';
    
    ?><code type="javascript">
    


    Bien sûr, ça ne fonctionne pas.

    Sauriez-vous svp y jeter un coup d'oeil ?

    Merci pour tout.

    beegees
    • Partager sur Facebook
    • Partager sur Twitter

    Je n'arrive pas à lier ma 4e liste déroulante

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown