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
La variable produitSociete passe bien (variable issue de la première liste) mais pas la variable produitCat (issue de la seconde liste)
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>
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 :
Merci de votre aide.
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>
Flo
Partager