[AJAX] ajax struts combobox
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================
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
| <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);
} |
-------------------------------------------
Code:
<html:select property="combotype" onchange="changeCat();">
-------------------------------------------
===l'action===
Code:
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); |