Olá guj,
To desenvolvendo uma pagina que tem vários selects, esses selects servem para ir filtrando as opções, pensei em colocar em cada select uma função do tipo “jumMenu” que tem no dreanweaver, segue abaixo um trecho do código.
<tr>
<td width="80" class="table-body">
<bean:message key="turma.campo.horario" />
</td>
<td>
<html:select property="cdHorario" onchange="jumpMenuHorarioTurma('parent',this)" >
<html:options collection="horarios" property="cdHorario" labelProperty="dsHorario"/>
</html:select>
</td>
</tr>
e aqui vai a função javascript para fazer o redirecionamento:
function jumpMenuHorarioTurma(targ,selObj){
eval(targ+".location='../../academico/sala/action.do?dispatch=listarParaTurmaAcademico&cdHorario="+selObj.options[selObj.selectedIndex].value+"'");
}
Essa função recupera o elemento selecionado e redireciona novamente para a action que popula as collection para o formulario.
Não achei muito legal essa solução, ficou algo muito grande e tem mais problemas: esse é apenas o primeiro select que estou usando, com o resultado que o usuario escolheu eu chamo novamente a action e populo a segunda collection de acordo com a escolha do primeiro select.
Minha segunda select tambem é usada para filtrar outros elementos,:
<tr>
<td width="80" class="table-body">
<bean:message key="turma.campo.diasAula" />
</td>
<td>
<html:select property="cdDiasAula" onchange="jumpMenuDiasAulaTurma('parent',this,document.forms[0].cdHorario)">
<html:options collection="diasAulas" property="cdDia" labelProperty="dsDia"/>
</html:select>
</td>
</tr>
E a função javaScript:
function jumpMenuDiasAulaTurma(targ,selObj,obj2){
eval(targ+".location='../../academico/sala/action.do?dispatch=listarParaTurmaAcademico&cdDiasAula="+selObj.options[selObj.selectedIndex].value+"&cdHorario="+obj2.options[obj2.selectedIndex].value+"'");
}
outro problema é que quando o usuario selecionar o segundo select ele será redirecionado para a action que popula as collection e ela ira popular uma terceira collection e voltar a pagina, mas o plobema é que como eu estou dando um refresh na página eu perderei o valor selecionado no primeiro select, por isso faço esse código enorme e horrível.
Deve haver uma solução muito mais elegante e simples para esse problema, alguém ja passou por isso?
Desde ja agradeço
[]'s