Bonjour,
je commence à peine à travailler avec Struts2, je cherche à lier 2 select entre eux en utilisant Ajax,
j'ai utilisé un exemple sur ce lien mais le résultat est catastrophique.
le second select est remplacé par la totalité de la page,
Voilà mon code JSP:
..........
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 <script type="text/javascript""> 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; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // 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('secondSelect').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","url.methode.action",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 la valeur sel = document.getElementById('firstSelect'); valeur = sel.options[sel.selectedIndex].value; xhr.send("valeur="+valeurFirstSelect); } </script>
le code java de la methode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <s:select id="firstSelect" name="rechercheBean.firstSelect" list="listeValeurs" listValue="valeur" listKey="valeur" headerKey="" headerValue="-- Selectionner une valeur --" onchange="go()"> </s:select> ............... <s:select id="secondSelect" name="rechercheBean.secondSelect" list="listeMvt" listKey="mvtId" listValue="mvtLib" headerKey="" headerValue="-- Selectionner un mouvement --"> </s:select>
juste pour précision : au moment de l'initialisation de la page, j'ai dans les 2 select toutes les valeurs avec tous les mouvements,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ...... private String valeur; //getter et setter de valeur ...... public String methode() { listeMvt= ..... // j'obtiens la liste des mvt en fonction de la valeur ....... return INPUT;// vers la meme page jsp }
Si quelqu'un à une idée, j'en serais très reconnaissant !!
Merci
Partager