Seguinte, nao estou conseguindo chamar uma função em JavaScript.
Assim, fiz em Java:
StringtxtEstado=request.getParameter("estadosCombo");StringtxtCidade=request.getParameter("cidadesCombo");System.out.println(txtEstado);//mostrou certo, suponha: "teste"try{if(txtEstado.equals("teste")){//também não funcionou:txtEstado.equals("")//Passa aqui, mas não entra no JavaScript. O codigo nao precisanãoprecisavaestaraqui,masprecisachamarumafunçãoentãotemalgumsegredodeJavaScriptemJSP???%><SCRIPTlanguage="JavaScript">document.TheForm.cidadesCombo.disabled=true;</SCRIPT><%...
É claro, aqui eu tirei muita coisa, mas é basicamente isso que eu quero.
E aí woquiton, seguinte, no JavaScript, eu pelo menos não sei como recuperar dados pelo métodos GET e POST, então trabalho da seguinte maneira, que também não acho muito elegante:
Recupero os dados em uma variável no JSP e aí uso em conjunto com a minha função em javaScript.
Exemplo:
…function Cidade(){var estado = <%out.println(txtEstado);%>;
íf(estado == “RS”) {
Bla, Bla,…
}
}
Se não estiver muito claro, posta que tento explicar melhor.
woquiton
Lucas
To tentando fazer isso mesmo, mas estou tentando deixar as condições… (if) em Java mesmo…
Seguinte, nao sei se já viu… tem umas consultas com combobox agora, que funciona assim… o usuario seleciona o estado, estao o combobox de cidade é liberado e faz uma consulta das cidades do estado selecionado do combo ao lado. Isso vale para o bairro também.
Então… tenho que fazer as condições em JavaScript, a parte de
document.Form.ComboTal.disabled = true nao funciona dentro do JavaScript dentro do Java. Acho que ele executa o JavaPrimeiro.
L
Lucashgt
Seguinte, após selecionado o Estado, tu tens que submeter a página novamente. Submetida a página, tu realiza a pesquisa de cidades com o estado recuperado, monta o combo de cidades.
Exemplo:
<script language=“Javascript”>function Cidade(){var estado = <%out.println(strEstado);%>;
Tu deves utilizar somente as variáveis do JSP na Função do JavaScript e realizar o controle todo por ele.
woquiton
Lucas
Então, acho que vc tem razão, mas o que me preocupa, é que acho que não será mantido o estado. Por exemplo.
Quando eu selecionar o estado, e submeter para a mesma pagina…
A consulta do combo de estados será feita de novo… quase certo que ele nao manterá o estado, tipo ‘SP’ no Combo (como selecionado, e os outros ainda lá, pois quando o usuario alterar (on change), chamo uma funcao JavaScript que submeterá novamente o formulario.
Isso de manter selecionado seria importante, pensei numa session, mas assim nao daria também, pois ficaria 2 SP. Um SP do session e outro SP da própria consulta…
O que acha?
L
Lucashgt
“woquiton”:
Lucas
Então, acho que vc tem razão, mas o que me preocupa, é que acho que não será mantido o estado. Por exemplo.
Quando eu selecionar o estado, e submeter para a mesma pagina…
A consulta do combo de estados será feita de novo… quase certo que ele nao manterá o estado, tipo ‘SP’ no Combo (como selecionado, e os outros ainda lá, pois quando o usuario alterar (on change), chamo uma funcao JavaScript que submeterá novamente o formulario.
Isso de manter selecionado seria importante, pensei numa session, mas assim nao daria também, pois ficaria 2 SP. Um SP do session e outro SP da própria consulta…
O que acha?
O ; eu coloquei, nao era isso. Era uma tag, desatenção minha.
Mas ele tá com problema na condição… já tentei == , .equals … .toString().equals() … e coloquei fixo, mas ainda assim ele nao funciona a condição.
L
Lucashgt
Coloca o pedaço do fonte onde ele gera o combo para que eu possa dar uma olhada. Por favor.
woquiton
txtEstado é a variavel do request.getParameter
estado é a do banco.
Dei um out.println nas duas, e as duas vem com valor corretamente. E iguais.
Funcionou aqui, ao invés de txtEstado.equals, estado.equals. A variável do request, nao verificava direito a igualdade. Extranho nao é?
L
Lucashgt
Beleza woquiton, espero que a ajuda tenha valido a pena.
Valeu carinha.
woquiton
Lucas
Claro, você me ajudou bastante.
Obrigado mesmo.
Espero poder contar mais vezes com sua ajuda, se precisar também, quem sabe eu nao saiba.
[]´s
Woquiton
woquiton
Lucas
Tudo bem?
Ontem eu terminei a consulta lá.
Seguinte, é uma pagina JSP, que chama uma classe Action, que chama um SessionBean, que por sua vez acessa um DAO e vai retornando um ArrayList. Isso para os 3 Combobox. Mas assim, eu achei um pouco despendioso… sei lá… toda nova consulta, faz as consultas anteriores.
Tipo, seleciona o estado, mostra a cidade, mas a consulta de estado é feita de novo.
O que acha?
Aproveito e te pergunto uma coisa, sei que existe um propriedade, mas nem sei qual, quando clica-se no combobox para os dados nao aparecerem por baixo do frame. No caso de Frames, existe uma propriedade que deixa down, nao sei como é isso… sabe como é?
[]´s e Obrigado pela ajuda.
L
Lucashgt
E aí rapaz, tranquilo 8)
Seguinte, não é necessário realizar as pesquisa novamente para os outros combos que tu já pesquisou, tu pode incluir os dados em um SessionBean e sempre que for utilizar um combo diferente do já pesquisado, tu valida para não realizar a pesquisa novamente, aí tu monta os teus combos com as informações contidas no SessionBean.
Sobre o combo ficar por debaixo do Frame, eu particularmente não seto nenhuma propriedade para que o mesmo fique por cima do frame, ele faz isso sozinho, a não ser que ele esteja dentro de um layer, aí eu acho que pode dar problema.
woquiton
Lucas
Sobre o Frame o que disse era verdade. Acontece quando se usa menus DHTML, pensei que poderia acontecer o mesmo, mas não.
Sobre não realizar novamentes a consulta, deixando no SessionBean, nao sei como fazer. Não entendi muito bem. Como eu deveria fazer?
[]´s
Woquiton
L
Lucashgt
Realmente, utilizar menus DHTML não adianta quando se tem Frames.
Vou montar um exemplo sobre o SessionBean e te envio.
woquiton
Lucas
Eu to usando Session Bean, mas só chamo um método nele. Não entendi como seria a condição pra guardar o select… ou ele faz isso sozinho?
[]´s
Woquiton
L
Lucashgt
Esquece o que eu falei.
Tive um surto e acabei me dando por conta que não é válida a idéia que tive.
Também estou tentando achar uma maneira de não precisar realizar a pesquisa sempre que um novo submit é realizado.
Pensei em armazenar em uma Session normal mas ficou meio truncado o negócio ainda. Vou continuar as minhas tentativas e assim que tiver um resultado positivo faço um novo post para compartilhar.
woquiton
Lucas
Acabei de colocar uma nova questão aqui no forum. Vc manja de Struts?
Lembra que eu fiz o 3 comboBox, e que depois que escolhido o Estado, Cidade, Bairro iria ser feito um select ? e retornar a consulta? Então… no JSP o código está todo em JSP mesmo e com aquela chamada do JavaScript pra bloquear os Combo.
O problema, é que eu queria fazer assim:
Como eu vou usar uma classe Action do Struts (que também é um servlet), chamo um método no SessionBean e depois do retorno o ArrayList e depois ela pode fazer um forward pra página que vai mostrar os dados.
Só que não funciona como acima… por que name=“TheForm”, é o nome do action form. Eu nao queria configurar no WEB.xml, apenas no struts-config … tem idéia de como eu faço? :roll:
[]´s
Woquiton
L
Lucashgt
woquiton, faz pouco que comecei a trabalhar com JSP e tudos mais. Ainda não consegui mexer com Struts, até comprei um livro para ver se consigo tocar mais rápido o meu aprendizado.