onChanged num comboBox

3 respostas
Edifran

Salve galera.

Vou tentar explicar o que eu quero fazer, não sei bem como procurar.
Estou desenvolvendo uma aplicação Web e tenho num formulário um comboBox e um textArea (dentre outros).
Tanto o comboBox como o textArea mostrarão informação que estão banco de dados.
Eu quero que no onChanged do comboBox (que mostra os códigos de produtos) seja mostrado no textArea a descrição do produto selecionado no comboBox.
Eu tenho que passar o valor do comboBox pra um metodo no java consultar no banco de dados e carregar o meu textArea.
Estou usando JSP.

Se alguém puder dar uma dica de que caminho seguir, eu agradeço.

Abraço.

3 Respostas

Guevara

Olá!
Creio que dê pra fazer usando requisição Ajax. Vc está usando algum Framework?
Abraço!

Edifran

Somente o Hibernate.
Ajax não estou usando.
Existe um framework Ajax pra eu baixar e usar?
Uso o IDE NetBeans

Guevara

Então, eu me referia a framework de desenvolvimento, de qualquer forma a idéia seria vc mandar uma requisição ajax pro seu Controller ou Servlet ao clicar no seu combobox, exemplo:

<script type="text/javascript" src="${pageContext.request.contextPath}/javascript/jquery/jquery-1.4.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#combobox").click(function() {
// inicio do codigo ajax
var codProduto = $(this).val();
$.post('/caminho/para/seu/metodo', 
        {'codProduto': codProduto},
        
        function() {  
        //$('.result').html(data);  
        window.location.reload();
});
// final do ajax	
});
});
</script>

O seu método no controlador vai receber o codProduto, vai chamar o método que pega o produto em questão e depois é só mandar para sua jsp pegando com expression language ${produto.nome}.
O combo ficaria algo assim:

<select id="combobox" name="produto.codigo"> 
		<option value="${produto.codigo}"> 
        <c:forEach var="produto" items="${produto}">                                        
        <option <c:if test="${produto.codigo == produto.codigo}"> selected="selected"</c:if> 
        value="${produto.codigo}"></option>                 
        </c:forEach>  
        </select>

No lugar da id do combobox vc poderia usar o onChange como vc queria e invocar o ajax.

Criado 7 de setembro de 2010
Ultima resposta 7 de set. de 2010
Respostas 3
Participantes 2