Bonjour a tous , je suis confronté a une problématique assez répondu dont je ne trouve pas de solution efficace, j'ai lus pas mal de forum mais je n'arrive pas a résoudre mon problème.

j'ai 3 liste déroulantes donc la 2eme filtre par rapport à la 1er et la 3 eme par rapport a la 2eme.

je veux que lorsque je change de valeur dans la 1er liste lancer une requete Ajax pour filtré la 2eme liste et idem pour la 3eme

je précise que j'utilise struts2 V 2.1.1 et jquery

voici 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
 
<s:form id="MyForm" action="MyAction" method="POST" theme="css_xhtml">
	<fieldset>
		<ol>
			<li>
				<s:select id="idListe1" name="liste1Selected" label="mylabel" labelposition="left" list="listeXX1" listKey="id1" listValue="libelle1" onchange="javascript:rafraichirListe();" />
			</li>
			<li>
				<s:select id="idListe2" name="liste2Selected" label="mylabel2" labelposition="left" list="listeXX2" listKey="id2" listValue="libelle2"/>
			</li>
			<li>
				<s:select id="idListe3" name="liste3Selected" label="mylabel3" labelposition="left" list="listeXX3" listKey="id3" listValue="libelle3"/>
			</li>
		</ol>
</fieldset>
Mon action Ajax :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<action name="rafraichirAjax"  class="MyAjaxAction"  method="rafraichirListe">
 
			<result name="input" >/jsp/test.jsp</result>
			<result name="success">/jsp/test.jsp</result>
			<result name="error">/jsp/test.jsp</result>
</action>
Mon code JS :
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
 
function rafraichirListe() {
 
	var idListe1 = $('#idListe1').val();
 
                $.ajax( {
                        type : 'POST',
                        url : 'rafraichirAjax.action',
                        data : 'idListe1=' + idListe1,
                        error : function() {
                             alert("");
                        },
                        success : function(data) {
                             var select = $('#idListe2');
                             select.replaceWith(data);
                        }
                  });
         //   }
//      } else {
//            alert("");
//      }
}
Mon traitement dans la classe action
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
public String rafraichirListe() throws Exception {
 
		try {
			liste2 = service.recupererListe2(idListe1);
		} catch (Exception ex) {
			return ERROR;
		}
       return SUCCESS;
  }
ceci ne marche pas en plus ce me rafraîchi toute la page.

merci pour votre aide