Salut tout le monde,

J'ai 4 listes déroulantes.

Les 3 premières se remplissent bien.

La fonction du 4e n'arrive pas à s'exécuter.

Je l'appelle de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
			fnctcategories(document.getElementById('select_Nom_types').value);
Dans ce code :

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
function fnctcours(cours)
{
	var xhr2 = getXhr();
 
	xhr2.onreadystatechange = function()
	{
		if(xhr2.readyState == 4 && (xhr2.status == 200 || xhr2.status == 0 ) )
		{
			leselect2 = xhr2.responseText;
 
			//alert(leselect2);
			document.getElementById('select_Nom_types').innerHTML = leselect2;
			//je pense que je dois juste passer la valeur du type car la valeur du mnemonique est déjà connue grâce au $_POST[MNEMONIC] (à vérifier)
			//partie liste déroulante Catégorie
			fnctcategories(document.getElementById('select_Nom_types').value);				
		}
	}
	//partie liste déroulante Types
	xhr2.open("POST","Scripts/ajaxTypes.php",true);
 
	xhr2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr2.send("MNEMONIC="+cours);	
}
Le code ci-dessus fonctionne correctement, le statut arrive bien à 200 et l'état à 4, je rentre donc bien dans le if.

La liste déroulante se remplit avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
			document.getElementById('select_Nom_types').innerHTML = leselect2;
mais comment je peux vérifier quel problème se pose lors de l'appel de ma fonction fnctcategories ?

Voici quand même le code de ma fonction fnctcategories :


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
 
	function fnctcategories(type)
	{
		alert('le type est ' + type);
		var xhr3 = getXhr();
		xhr3.onreadystatechange = function()
		{
			if(xhr3.readyState == 4 && (xhr3.status == 200 || xhr3.status == 0 ) )
			{
				alert('cool');
				leselect3 = xhr3.responseText;
				document.getElementById('select_Nom_types').innerHTML = leselect3;
			}
		}
 
		xhr3.open("POST","Scripts/ajaxCategories.php",true);
		xhr3.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr3.send("NOM_DU_TYPE="+type);			
	}
et le code 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
25
26
27
28
29
30
31
<?php
session_start();
//print_r($_POST);
	if(isset($_POST["MNEMONIC"]))
	{
 
		$conn = mysql_connect("localhost","root","mdp"); 
		$db=mysql_select_db("pharma", $conn);
		$res = "SELECT DISTINCT CATEGORIE 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("coucou");</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>';
 
?>
Merci d'avance pour votre aide.

beegees