Ajuda com select list dinâmicos

1 resposta
S

Srs, Boa Tarde…
Estou tentando fazer um código apenas utilizando javascript e jsp que passe parâmetros de um select list para outro select list onde as listas montadas por cada select são extraídas de pesquisa em banco via comandos em jsp. A questão é que o segundo select list só pode executar o seu sql e preencher o campo quando o primeiro select list já tiver uma opção escolhida. Não consegui fazer nada sem ter que ficar submetendo o form para ele próprio e assim sendo fazendo request.getParameter para obter o parâmetro escolhido no 1 select list para utilizar como filtro no segundo.
Alguém consegue me ajudar com algum código em javascript que faça a seleção do valor no primeiro select ativar uma função que dispare um sql para formar a lista do 2 select.
Obrigado

Um exemplo do código abaixo:

function SubmitForm()

{

window.document.forms[0].submit();

}

Tenho um objeto classe:

<% sSelected = (sClasse.compareTo("") == 0) ? “selected” : “”; %>

value="">CLASSE
<% sSelectLista = select classe from callmaker

sSelectLista += " order by LOWER (classe)";

%>

<%@ include file="…/jsp/preenche_lista.jsp" %>

Ao escolher uma classe da ista acima, eu submeto o form para a própria tela e recupero o valor da classe. Tenho um objeto sub_classe que depende do valor da classe para montar sua lista de valores através do select abaixo:

<% sClasse = request.getParameter (“classe”);%>

<% sSelected = (sSubClasse.compareTo("") == 0) ? “selected” : “”; %>

value="">SUB_CLASSE
<% sSelectLista = select sub_classe from callmaker where; if (sClasse != null){

sSelectLista += " classe = ‘" + sClasse + "’";

} sSelectLista += " order by LOWER (sub_classe)";

%>

<%@ include file="…/jsp/preenche_lista.jsp" %>

O código funciona, porém ao ficar submetendo o form para ele mesmo eu acabo (por ter muitos elementos no mesmo form) perdendo as atualizações em outros campos texto independentes.

1 Resposta

Roger75

Eu já vi um projeto que tinha mais ou menos o mesmo problema que você. A solução que o cara fez foi o seguinte: na hora de abrir a página, ele carregava todas as opções possíveis que o usuário poderia escolher.
Por exemplo, se eu tinha as opções a,b e c na primeira lista, na segunda lista poderia ser a1,a2,a3,b2,b2,b3,etc, e colocava todas estas possibiliddes num campo hidden.
Então, com javascript ele fazia a segunda lista ser carregada com o que tinha no campo hidden, de acordo com o que era selecionado na primeira lista.
Infelizmente eu não tenho o código aqui comigo, mas vale lembrar que essa solução é adequada apenas se não houverem muitos dados pra carregar.

Criado 24 de maio de 2006
Ultima resposta 24 de mai. de 2006
Respostas 1
Participantes 2