5
respostas

duvida retorno de requisição

tenho o codigo abaixo que realizo um consulta no banco de dados, como retorno os dados da consulta do controller na mesma pagina abaixo da view?

<div id="page-wrapper">
            <div class="container" align="center">
            <div class="row">
                <div class="col-lg-12"  align="center">
                    <form role="form" action="/intranet/consultaAp" method="post">
                        <fieldset>
                            <div class="input-group input-group-md">
                                <input type="hidden" name="_token" value="{{ csrf_token() }}"/>
                                <span class="input-group-addon" id="sizing-addon1">Data Inicial</span>
                                <input type="text" class="form-control" placeholder="Data Inicial" name="data_ini" autofocus>
                            </div><br>
                            <div class="input-group input-group-md">
                                <span class="input-group-addon" id="sizing-addon1">Data Final</span>
                                <input type="text" class="form-control" placeholder="Data Final" name="data_fim" autofocus>
                            </div><br>
                            <!-- Change this to a button or input when using this as a form -->
                            <div align="center">
                                <button id="btn_apont" type="button" class="btn btn-md btn-success">Pesquisar</button>
                                <button id="#" type="submit" class="btn btn-md btn-info">Gerar Exel</button>
                            </div>
                        </fieldset>
                    </form>
                </div>
            </div>
            </div>
            <br/>
             </div>
        </div>
        <!-- /#page-wrapper -->

    </div>   
5 respostas

Oi Emerson, isso você faz no controller, não na view. Você pode fazer um redirect para a mesma página enviando os dados da consulta pra ela.

Pegou a ideia?

sim intendi, como o apax do php pura certo? mas oque nao consigo entender e onde eu coloco isso? digamos que no ajax eu definia uma div para ele carregar o data. mas e no laravel como digo isso ?

Hm, você quer usar Ajax, é isso? Então, você vai criar um javascript lá na pasta de assets do Laravel. Fica em resources/assets.

Ai na view, você vai precisar usar a função asset pra carregar esse js e fazer o ajax.

Só precisa ficar atento pra evitar o submit padrão do formulário e responder corretamente via ajax pro js cuidar do restante do processo.

na verdade ajax e um pouco trabalhoso, e tem que ter cuiodado nas informaçoes pois qualquer descuido ele nao funciona, a pergunta e como fazer isso parecido com o laravel...

Oi Emerson, tudo bom?

Pelo o que eu entendi, sua ideia é fazer um filtro por data, certo?

É dificil te dar uma opinião direta porque a gente só ta vendo o filtro em sí. Mas, vamos as opções.

A primeira, que você já sabe, é utilizar ajax no front pra recarregar o conteudo (o que é bem mais elegante, porém trabalhoso).

Qualquer outra abordagem recarregará a página, pois vai fazer outra requisição.

Uma delas é você criar uma action pra lista geral, com todos os dados, completinha etc. Ao renderizar essa action, você vai ver o form com as datas para filtrar. A sacada é que a action desse form deve ser diferente da action que renderizou a página, pois ela vai receber os filtros. No final, você renderiza a mesma página só que com os dados filtrados =)

Uma terceira opção é você processar tudo na mesma action. Acredito que essa seja a pior pois vai te obrigar a fazer mtos ifs no controller, sujando bastante o código, e deixando a coisa toda até mais complexa.

Passar dados pra View no laravel não tem muito segredo, se você estiver usando um template engine, como twig ou blade, é só passar pro renderizador esses dados. No blade seria algo como:

    return view('suaView', ['seuDado' => 'valor']);

Se você tiver na abordagem do ajax, basta retornar os dados como JSON

Qualquer duvida, compartilha mais do seu código aqui com a gente. Assim, fica mais fácil entender o que está rolando e o que onde você quer chegar =)

Abraço