4
respostas

Buscar um produto em um modal e adiciona-lo à lista do form

Eu estou batendo cabeça a algum tempo. Eu quero clicar em um botão no form que vai abrir um modal(pop-up).

Neste modal eu tenho que buscar um produto e quando achar o que eu quero, vou adiciona-lo a lista do form que eu estou cadastrando a venda de produtos.

Eu já fiz o modal e abriu, mas não sei o que fazer a partir dai, como que eu vou adicionar na lista? Todos os submit de dentro do form chamam o salvar dele.

Alguem pode me dar uma ideia ou alguma palavra chave para eu pesquisar o que eu posso fazer?

Eu também já pensei em clicar em um botao do form, ele enviar todas as informações para a pagina de busca e após achar o produto, voltar para terminar a venda, mas de novo, como eu posso colocar dois botões no mesmo form?

4 respostas

Fala ai Rodrigo, tudo bem ?

Cara esse comportamento tá com uma cara muito forte de ajax, acho que vale a pena você dar uma olhadinha nisso.

Não consigo te dar nenhum exemplo pois não faço a minima ideia de como você implementou.

Eu esbarrei em algumas explicações com ajax e json hoje. Eu pensei em fazer algo assim com ajax e talvez o json me ajude também:

Procurar produto -> Selecionar -> Adicionar na lista -> Envia para o controller -> refresh na pagina com o produto na lista do carrinho.

Abaixo o Controller que resolve o salvar, é um simples por enquanto:

@RequestMapping(method = RequestMethod.POST)
    public ModelAndView gravarCarteira(@Valid Carteira carteira, BindingResult result) {
        if (result.hasErrors()) {
            System.out.println(result.getAllErrors());
            return form(carteira);
        }

        carteiraService.saveCarteira(carteira);

        return new ModelAndView("redirect:/carteira/cadastro");

    }

Abaixo o codigo do jsp(dei uma enxugada para caber no post):

<form:form action="${s:mvcUrl('VC#gravarVenda').build() }" method="post" modelAttribute="venda"  autocomplete="off">

                  <div class="box-body ">

                      <div class="form-group col-lg-12">
                      <label ><fmt:message key="venda.cadastro.valorVenda" /></label>
                      <fmt:message key="venda.cadastro.valorVendaPlaceHolder" var="valorVendaPlaceHolder"/>
                      <form:input id="currency"  path="valorVenda" cssClass="form-control money"  placeholder="${valorVendaPlaceHolder}" />
                    <form:errors path="valorVenda" class="text-danger" />
<div class="box box-success">
            <div class="box-header with-border">
              <h3 class="box-title"><fmt:message key="venda.cadastro.produtos" /></h3>
            </div>
            <div class="box-body">
              <div class="box-body no-padding ">
              <table class="table table-striped">
                <tr>
                  <th style="width: 10px">#</th>
                  <th><fmt:message key="venda.cadastro.nomeProduto" /></th>
                  <th style="width: 40px"><fmt:message key="venda.cadastro.quantidadeProduto" /></th>
                  <th style="width: 40px"><fmt:message key="venda.cadastro.produtoPreco" /></th>
                   <th style="width: 100px"><fmt:message key="venda.cadastro.editarExcluir" /></th>
                </tr>
                <tr>
                  <td>1.</td>
                  <td>Update software</td>
                  <td>
                    <div class="progress progress-xs">
                      <div class="progress-bar progress-bar-danger" style="width: 55%"></div>
                    </div>
                  </td>
                  <td><span class="badge bg-red">55%</span></td>
                  <td class="td-actions text-middle">
                        <a  rel="tooltip" class="btn btn-success" id="edit_event"   href="<s:url value='/venda/editarProduto/${cliente.id}' />">
                             <i    class="fa  fa-pencil"></i> 
                        </a>
                        <a  rel="tooltip" class="btn btn-danger" id="edit_event"   href="<s:url value='/venda/excluirProduto/${cliente.id}' />">
                             <i    class="fa  fa-trash-o"></i> 
                        </a>
                    </td>
                </tr>
              </table>
            </div>

            </div>
            <!-- /.box-body -->
          </div>
              <div class="box-footer">
<button type="submit" class="btn btn-info pull-right btn-lg btn-block" name="cadastro" value="cadastro">
                        <fmt:message key="cadastro.salvar" />
                    </button>
   </form:form>

Será que tem como eu mandar para a pagina de cadastrar a venda um json e quando eu abrir um modal para adicionar um produto na lista eu use o jquery para incrementar e popular com o produto que foi escolhido na busca?

Tem sim cara. O Spring já te ajuda com isso também ele tem alguns controllers que vai te ajudar a mandar objetos em json