Bonjour,

J'utilise le système AJAX pour réaliser 3 combobox lié par l'intermédiaire de ma base de données Accès.
La première combobox est la principale et la sélection de cette dernière définit la sélection possible dans la seconde, et la sélection dans la seconde vient définir la sélection possible dans la troisième.

La fonction AJAX pour lié la première et la deuxième combobox fonctionne nickel, par contre lors je lance la fonction AJAX qui permet de lier la seconde et la troisième, la fonction : xhr.readyState ne dépasse pas l'état 1 donc forcément cela ne fonctionne pas, voici le code de ma fonction :

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
 
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;
			}
 
function go2(){
 
				var xhr = getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
				alert(xhr.readyState);
					// 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('codage').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxcodage.php4",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, l'id de types
				sel = document.getElementById('types');
				idTypes = sel.options[sel.selectedIndex].value;
				xhr.send("idtypes="+idTypes);
 
				sel = document.getElementById('classes');
				idclasses = sel.options[sel.selectedIndex].value;
				xhr.send("idClasses="+idclasses);
			}
Et voici le code du fichier php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
	echo "<select name='Codage'>";
	if(isset($_POST["idTypes"]) && isset($_POST["idClasses"])){
		$con=odbc_connect("rtpi","","") or die("Impossible de se connecter à la base de donnée, réessayer ou contacter un administrateur");
		$requete = "SELECT * FROM Codage WHERE Classes = ".$_POST["idClasses"]." AND Types = ".$_POST["idTypes"];
		$resultat = odbc_exec($con,$requete) or die("Impossible de générer la requête SQL, contacter un administrateur");
		while(odbc_fetch_array($resultat)){
			echo "<option value='".odbc_result($resultat,"Codes")."'>".odbc_result($resultat,"Codes")."|".odbc_result($resultat,"Designation")."</option>";
		}
	}
	echo "</select>";
?>
Ainsi je sollicite votre aide pour me sortir de ce problème, merci à vous.