Olá gente, preciso de uma ajuda relacionada a seleção de linhas de um listbox.
Tenho um determinado listbox com dados vindo do BD. O que eu preciso é que ao selecionar as linhas desse listbox, apareça um dado referente a ele em um outro campo de texto. O problema é que os dados do listbox estão em uma tabela, mas os dados do que deve aparecer no campo de texto está em outra tabela. (sendo que essa 2ª tabela possui uma chave estrangeira com primeira).
Então conforme a linha eu selecionar no listbox, deve aparecer valores diferentes no campo de texto.
Alguém tem alguma idéia de como eu faço isso.
Eu acredito que terei que fazer uma busca naquela segunda tabela do BD, usando como parametro o id do dado da linha do listbox. o problema é que eu não sei selecionar esse id. Lembrando que para exibir os dados no listbox eu fiz um método de busca que retorna uma list.
espero que eu tenha explicado bem, não sei se ficou mto claro.
Qualquer dica seria uma grande ajuda, muito obrigado desde já!
Está usando somente JSP? Alguma biblioteca adicional?
Você pode usar Ajax para isso, no caso, a forma mais prática é fazer um JSP que retorna um XML com os dados que vai carregar na segunda listbox e chamar via Ajax (em javascript). Caso não queira implementar uma biblioteca de ajax você pode usar o JSExt ou o JQuery. Eu só uso o JQuery, e acho muito bom, nunca usei o JSExt, mas conhecidos meus usam e acham mais prático para muitos recursos.
Outra coisa que você pode fazer, é utilizar as taglibs de algum framework com PPR (Partial Page Render), ele vai fazer esse trabalho sujo para você, e você só tem que dizer que no onchange do select 1 tem que renderizar novamente o select 2. Eu uso, com o Faces 2.0 (Framework MVC, me faz essa injeção de conteúdo nos meus beans) o Richfaces e agora também o Trinidad (ainda brigando um pouco para fazer os dois funcionarem juntos, parece que o Richfaces não gosta do Trinidad. rsrsrs) e acho eles muito bons, o Richfaces no quesito Design, é muito melhor que o Trinidad, mas o Trinidad tem mais recursos.