[AJAX] Select qui dépend d'une autre ? filtrage
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:
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:
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:
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 !! :calim2:
Merci
select avec ajax et struts 2
bonjour rimas2009
j'ai un problème similaire de select
le Firstselect je le remplis moi meme et je veux récupérer la sélection pour remplir le secondSelect
je suis débutante dans ajax,je travail avec eclipse et mysql,hibernet et struts 2
1)je ne sais pas comment récuperer la selection dans le firstSelect pour l'envoyé dans la méthode send(...)
2)pour URL de la methode open("POST",url,true) c'est nomDeLaClasse .java qui traitera le requête ??? cad url=nomClass.java ou c'est nomClass.nomMethode
si quelqu'un peut m'aider je serai très reconnaissante
merci d'avance