Bonjour,
Je suis en train d'adapter un script de listes déroulantes dynamiques et je me heurte à un problème d'envoi de la valeur sélectionnée dans la seconde liste dynamique vers le fichier coté serveur de création de la troisième liste.

Voici mon 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
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
73
74
75
76
77
78
79
80
 
<script language="Javascript" type="text/JavaScript">
 
	// FONCTION DE REQUETE AJAX
    function makeRequest(url,id_niveau,id_ecrire){
 
		// CREER UNE INSTANCE (UN OBJET) DE LA CLASSE DESIREE FONCTIONNANT SUR PLUSIEURS NAVIGATEURS
		var http_request = false;
 
		// POUR MOZILLA ET SAFARI
		if(window.XMLHttpRequest){
 
			http_request = new XMLHttpRequest();
 
			if(http_request.overrideMimeType){
 
				// APPEL DE FONCTION POUR ECRASER L'EN TETE ENVOYE PAR LE SERVEUR (AU CAS OU IL NE S'AGIT PAS DE TEXT/XML, CAS DE CERTAINES VERSIONS DE FIREFOX
				http_request.overrideMimeType('text/xml');
			}
 
   		}
    	// POUR IE
    	else if(window.ActiveXObject){
 
			try{
   				http_request = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch(e){
 
				try{
    				http_request = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			catch(e){}
    		}
    	}
 
		if(!http_request){
			alert('Abandon :( Impossible de créer une instance XMLHTTP');
			return false;
		}
 
		// FONCTION DE TRAITEMENT APPELLEE QUAND ON RECEVRA LA REPONSE
		http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); }
 
		// LANCEMENT DE LA REQUETE
    	http_request.open('POST', url, true);
 
		// CHANGER LE TYPE MIME DE LA REQUETE POUR ENVOYER LES DONNEES AVEC LA METHODE POST
    	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	obj = document.getElementById("id_niv1").value;
    	data = "produitSociete=" + obj;
    	http_request.send(data);
 
	obj1 = document.getElementById("id_niv2").value;
    	data1 = "produitCat=" + obj1;
    	http_request.send(data1);
    }
 
    // FONCTION DE TRAITEMENT
    function traitementReponse(http_request,id_ecrire){
 
		var affich = "";
 
		if(http_request.readyState == 4){
 
			// CAS AVEC REPONSE DE PHP EN MODE TEXTE
    		if(http_request.status == 200){
 
    			// CHARGEMENT DES ELEMENTS RECUS DANS LA LISTE
				var affich_list = http_request.responseText;
				obj = document.getElementById(id_ecrire);
				obj.innerHTML = affich_list;
 
			}
			else{
				alert('Un problème est survenu avec la requête.');
			}
		}
    }
    </script>
La variable produitSociete passe bien (variable issue de la première liste) mais pas la variable produitCat (issue de la seconde liste)

Le problème vient de la partie AJAX (entre la ligne 49 et 56 je pense) car l'appel à mes fichiers côté serveurs fonctionne correctement.

Voici le code de la première liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<select name="produitSociete" id="id_niv1" onChange="makeRequest('ajax1.php','id_niv1','id_list2')">
<option value="">Choix</option>
<?=$optionListe?>
</select>
Merci de votre aide.
Flo