Bonjour,
j'aurai besoin de vos lumières en javascript, je suppose que ce n'est pas grand chose mais je ne trouve pas. Voila un petit script qui me permet de modifier l'apparition de menus deroulants dont les données sont liées les unes aux autres (façon ajax). J'ai 4 menus deroulants liés. Si je choisi une valeur dans le premier il m'affiche le deuxieme avec les valeurs correcpondant à la donnée choisi dans le premier. Si je choisi une valeur dans ce deuxieme, il m'affiche le troisieme avec la valeur correpondante au deuxieme, ainsi de suite. Apres avoir selectionné mes 4 valeurs de mes 4 menus je choisi de modifier la première valeur par exemple, seul le deuxieme menu se modifie les deux autres garde leurs valeurs selectionnées. Et ca ca me pose probleme, je voudrais qu'en changeant la valeur du premier les trois suivants se reinitialisent, ou en changeant la valeur du troisieme que le quatrieme se reinititialise, ...
Si vous pouvez jeter un oeil au code, je pense que ce n'est pas grand chose mais je ne trouve pas ... merci beaucouooooooooooop


---- LE 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
<script type="text/javascript">
var Ld1Id='';
var Ld2Id='';
var Ld3Id='';
var id_liste='';
 
function ValideLd2(val) {
        // pnj_theme_ref
        Ld1Id=val;
        // Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante ici la '2'
        id_liste='2';
        // CARIABLE LD_URL => Donne l'adresse envoyé en GET caché 
        var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
        // PERMET LE RECHERGEMENT CACHÉ
        ObjetXHR(LD_URL)
        // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
        if (Ld2Id!=''){ValideLd3('');
        }
}
 
function ValideLd3(val) {
        Ld2Id=val; //id_commune
        id_liste='3'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
        var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
//      if (Ld3Id!='') {var LD_URL = 'ValideLd4.php';}  
        ObjetXHR(LD_URL)
        if (Ld3Id!=''){ValideLd4('');}
}
 
function ValideLd4(val) {
        Ld3Id=val; //id_commune
        id_liste='4'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
        var LD_URL = 'ValideLd4.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id;
        if (Ld3Id=='') {var LD_URL = 'ValideLd4.php';}  
        ObjetXHR(LD_URL)
}
 
function ObjetXHR(LD_URL) {
        //creation de l'objet XMLHttpRequest
        if (window.XMLHttpRequest) { // Mozilla,...
                xmlhttp=new XMLHttpRequest();
                if (xmlhttp.overrideMimeType) {
                        xmlhttp.overrideMimeType('text/xml');
                }       
                xmlhttp.onreadystatechange=ChargeLd;
                xmlhttp.open("GET", LD_URL, true);
                xmlhttp.send(null);
        } else if (window.ActiveXObject) { //IE 
                xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
                if (xmlhttp) {
                        xmlhttp.onreadystatechange=ChargeLd;
                        xmlhttp.open('GET', LD_URL, false);
                        xmlhttp.send();
                }
        }
        // Bouton non apparent car modification de LD1 ou Ld2
        document.getElementById('buttons').style.display='none';
}
 
// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
        if (xmlhttp.readyState==4) { 
                if (xmlhttp.status==200) { 
                        //span id="niv2" ou "niv3"
                        document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText; 
                        if (xmlhttp.responseText.indexOf('disabled')<=0) {
                                //focus sur liste déroulante 2 ou 3
                                document.getElementById('Liste'+id_liste).focus(); 
                        }       
                }
        }
}
 
function Affiche_Btn() {
        document.getElementById('buttons').style.display='inline';
}
</script>