1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

retornando classe via ajax

Olá a Todos,

Eu tenho um combobox onde eu seleciono um valor qualquer, dai ele roda uma função javascript onde ele passa o código que selecionei no combo e deve me retornar a classe item pesquisada pelo banco.

Até a pesquisa está certinha, ele realiza, porém não consigo receber uma classe.

Abaixo é o código do meu combobox, onde o valor que é selecionado ele aciona a função alimentarCampos();

<select data-plugin-selectTwo class="form-control populate" name="item.id" id="codigo_barras"  onchange="alimentarCampos();">
     <option selected value=""></option>                                        
        <optgroup label="Código de Barras">
            <c:forEach var="item" items="${items}">
                <option value="${item.id}">${item.codigo_barras}</option>
            </c:forEach>
        </optgroup>
</select>

Abaixo é o javascript da função alimentarCampos que o combo acima chama, ele é responsável por pegar o id do valor selecionado, e passar este valor para uma função no meu controller chamado obtemDadosItems, esta função tem como responsabilidade fazer um select na tabela item, e devolver um objeto Item, até aqui ele funciona direitinho, o problema está quando eu quero receber esta classe, assim posso inserir valores em outros campos.

        <script type="text/javascript">
            function alimentarCampos() {
                var minhaLista = document.getElementById("codigo_barras");                                
                document.getElementById("descricao").value = minhaLista.options[minhaLista.selectedIndex].value;

                $.post("obtemDadosItems", {'id' : minhaLista.options[minhaLista.selectedIndex].value}, function(resposta) {        
                    var myObject = resposta; <-- Como manipulo ?
                    document.getElementById("numero_fabricante").value = myObject.numero_fornecedor;
                });                
            }            
        </script>

Abaixo segue a função chamada do javascript, que se encontra no controller, esta função tem como objetivo buscar um item da tabela e retornar sua classe

    @RequestMapping("obtemDadosItems")
    public String obtemDadosItems(Long id, Model model){        
        model.addAttribute("items", itemdao.lista());
        model.addAttribute("item_selecionado", itemdao.buscaPorId(id));    
        return "Estoque_Entrada/cadastro_entrada";
    }

O problema é que o campo numero do fabricante está aparecendo o valor = undefined

  • Adicione um Alert na variavel inteira (myObject) e poste aqui o resultados, para que possamos ver como ela está voltando!

    Além disso, adicione o código da sua controller que devolve a resposta a sua chamada.

    Lucas Freitas   14 de jul de 2015
  • henrique.paes, qual o valor está sendo retornado na variável myObject?

    lucastody   14 de jul de 2015
  • Desculpe pela demora, ele retorna partes da página como o Head, nada demais.

    henrique.paes   14 de jul de 2015
  • Creio que você deveria fazer esse método retornar um objeto JSON. Com isso, você conseguiria acessar o atributo desejado.

    lucastody   14 de jul de 2015
  • Mas mantenho o mesmo código do Controller? Você tem um exemplo de como seria este objeto json, eu não conheço

    henrique.paes   14 de jul de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags ajax ou faça a sua própria pergunta.