Bonjour,
je code une application web utilisant jsp et struts
sur cette page j'ai deux combobox(Typeactivite), lors de la sélection dans la premiere je dois remplir la deuxieme avec la liste des activités du type sélectionné
j'utilise une fonction ajax pour appeler l'action struts ...
mon problème se situe pour le remplissage de cette combobox comment faire?
j'ai essayé le request.getSession().setAttribute("list",resultat)
mais la il reaffiche toute la page en surplus de l'ancienne partie.le problème est donc que l'affichage est mauvais mais egalement que si on reaffiche la premiere combo en premiere position on a plus le type d'activité choisi.
quelqu'un aurait-il une piste? j'ai pensé à ce que l'action retourne directement la combo mais je ne sais comment faire cela.
voici mon code(j'ai réussi à retourner un message dans ma jsp mais pas plus)
======le script================
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
| <script type="text/javascript">
function changeCat()
{
alert("ici");
var selectType = document.forms[0].combotype.value;
showActivites(selectType) ;
}
function showActivites(selectType)
{
var xmlhttp=false; if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); }
alert("i"+selectType);
xmlhttp.open("GET", "activites.do?i="+selectType);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
// document.
var d = document.getElementById('act');
d.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
} |
-------------------------------------------
<html:select property="combotype" onchange="changeCat();">
-------------------------------------------
===l'action===
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String type = request.getParameter("i");
List<Activite> liste=lookupFacadeBean().getAllActiviteByType(Integer.parseInt(type));
request.getSession().setAttribute("listeact", liste);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("eh oui");
out.flush();
return mapping.findForward(SUCCESS); |
Partager