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>
..........
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>
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
 
......
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
}
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,
Si quelqu'un à une idée, j'en serais très reconnaissant !!
Merci