Na verdade são duas dúvidas. Uso JSP + SERVLET + BD
Estou trabalhando com iframe, então na verdade uma das páginas será “estática” que será onde terá os menus.
1ª Dúvida:
Como faço para deixar um combobox pré carregado com dados do BD?
2ª Dúvida:
Existe uma maneira (Javascript ou outro meio) de após ser selecionado esse valor no combobox (na tela principal que não ficará sendo carregada toda hora (refresh)) e usar em outra página como parâmetro?
Por exemplo, abri uma tela dentro do iframe, nesta tela tem um botão de pesquisa, que irei utilizar com um dos parâmetros o valor do combobox, da tela principal que está o iframe. tem como?
PgpmDAO dao = new PgpmDAO();
// INFORMAÇÕES DOS ERROS DO PROCESSAMENTO
List<ListaVeiculo> veiculos = dao.listaVeiculos();
request.setAttribute("veiculo", veiculos);
// ENVIA PARA A TELA DE RESULTADO
request.getRequestDispatcher("3.jsp").forward(request, response);
}[/code]
Mas não é esse servlet, eu separei, pq tem um do form (submit) para enviar para uma tela de pesquisa, eu separei pq acho que tem que carregar o servlet antes da jsp correto? como?
Mas queria saber como pego esse valor setado em uma jsp e usar em outra jsp…
É assim, está setado na tela principal que ficará sem recarregar, ao clicar em um item do menu, ao abrir a página, a página consulta o campo que está selecionado e usa o valor…
Coloca o combobox dentro de um form. Sempre que o valor alterar, você envia o form e não atualiza a página. No método que você pega form enviado, você salva o item na sessão e depois recupera no outro servlet.
Deve ter alguma forma melhor de fazer isso, mas acho que é a mais simples.
Eu pensei em algo do tipo… setar o valor via javascript (do jeito que tá, mas setando o valor) ai nas páginas que eu precisar eu pego o valor na session… o que acha?
Pq tentei colocar o form no combo mas ele entra em conflito com o form principal e mesmo usando o this, não funciona
Coloca em forms separados. Você pode deixar o form no fim da página com um input hidden. Quando o usuário alterar o valor do combobox, você altera o valor desse input e envia o form.
function displayVals() {
var gramaSelecionada = $('#selecionado :selected').text();
$.ajax({
type: 'POST',
url: 'ServletGrama,
data: {
grama:gramaSelecionada
},
beforeSend:function(){
// this is where we append usually a loading image
},
success:function(data){
// successful request; do something with the data
$('#output').html(data);
},
error:function(){
// failed request; give feedback to user
}
});
}
$( "select" ).change( displayVals );
displayVals();
é assim, no combobox, ao alterar ele, ele já envia para o servlet para setar o valor na session e depois qualquer outra jsp que eu abra eu chamar a session e pegar o valor.
resumindo:
JSP (com Combo) - Servlet (set atributo) - Qualquer JSP