Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

campo de pesquisa

13 de Julho de 2012, 17:35 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 4 vezes
Tem como colocar um campo de pesquisa na aba listagem

Autor: Divaldo Almir Antunes


99 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    13 de Julho de 2012, 23:01

     

    Divaldo,

    que aba listagem você está se referindo ?

    Abraço.

    • 6441733b7a5cce14bff29112138038d6?only path=false&size=50&d=404Divaldo Almir Antunes(usuário não autenticado)
      14 de Julho de 2012, 7:58

       

      No meu form eu criei uma aba Listagem conforme abaixo

      Estou tentando ao clicar em pesquisar fosse localizado o item que desejo

      • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
        14 de Julho de 2012, 8:56

         

        Divaldo,

        supondo que voce chamou este campo de pesquisa como psq_codigo, é muito simples fazer a consulta. Ao clicar no botão pesquisar, o form será recarregado ( se voce não estiver utilizando ajax ), então, bem acima da linha onde voce recupera os dados para o gride voce vai adicionar o seguinte filtro:

        if( $frm->get('psq_codigo') )

        {

        $dados = xxxxxDAO::selectAll(null,"id_xxxx=".$frm->get('psq_codigo')  );

        }

        criar a gride a partir daqui....

         Abraço.

        • 4210951d8ebd1c937e4efe1938358d3f?only path=false&size=50&d=404Leandro Santos(usuário não autenticado)
          19 de Julho de 2012, 20:06

           

          Você poderia me dar um exemplo que como fazer esta mesma consulta utilizando Ajax?

          Obrigado

          • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
            19 de Julho de 2012, 21:32

             

            Vamos ver se consigo te explicar como fazer.

            Para que o gride seja carregado via ajax, voce deve cria-lo utilizando uma ação do form, então dentro da pasta action/ cria uma ação chamada criar_gride.php. Dentro deste arquivo voce vai colocar o codigo de criação do gride que deve estar no formulário, deixando no form o campo apenas o campos html que exibe o gride, mas sem conteudo, vazio mesmo. O codigo de criação do gride que me refiro é a linha que faz a consulta no banco de dados ate a linha antes da que adiciona o objeto gride no campo html. No arquivo criado criar_gride.php adicione na ultima linha o comando para gerar o html do gride. Ex: $gride->show();

            Neste ponto se voce executar o form vai aparecer sem o gride, porque agora que entra a chamada ajax.

            No final do codigo do formulário, depois da tag de fechamento do php, adicione o seguinte codigo javascript.

            <script>

            function atualizarGride()

            {

            // esta função vai executar a ação criar_gride do form passando o valor do campo psq_codigo.

                fwGetGrid('nome_arquio php do form','nome do campo html que recebera o gride',{'action':'criar_gride','psq_codigo':''},true);
            }

            </script>

            Agora voce tem que fazer o form chamar esta função na inicialização ou adicionar um evento na aba pesquisa para chamar esta função.

            Para fazer form chamar esta função na inicialização utilize o metodo $frm->addJavascript();

            assim: $frm->addJavascript("atualizarGride()");

            esta mesma função deverá ser chamada no evento onClick do botão pesquisar. Remova o parametro action do botão e adicione a função atualizarGride() no parametro onClick do botão.

             Bem basicamente é assim, na pasta base/exemplo tem dois exemplos que utilizo o carregamento do gride via ajax, são exe_gride.php e exe_gride_2.php, nestes eu estou carregando o gride utilizando um arquivo separado e não como uma ação mas é a mesma coisa.

            Abraço.

            • 4210951d8ebd1c937e4efe1938358d3f?only path=false&size=50&d=404Leandro Santos(usuário não autenticado)
              25 de Julho de 2012, 13:35

               

              Olá Luis,

              Fiz os seguintes ajustes mas quando clico em pesquisar nada acontece:

              //cidades.php
              ...
              $frm->addTextField('pesq_cidade','Cidade:',30,false);
              $frm->addButton('Pesquisar',null,null,null,null,false,false)->setEvent('onclick','atualizar_gride()');
              ...

              //cidades.js
              function atualizar_gride()
              {
               fwGetGrid('cidades','html_gride',{'action':'atualizar_gride','pesq_cidade':''},true);

              }

              //atualizar_gride.php
              <?php
              $g = new TGrid(
                 'gd' 
                 ,'Municípios' 
                 ,TPDOConnection::executeSql("select c.co_municipio, c.no_municipio, c.sg_uf, c.co_microregiao, m.no_microregiao from tb_municipio c left join tb_microregiao m on c.co_microregiao=m.co_microregiao where c.no_municipio like '%".$frm->get('pesq_cidade')."%'")
                 ,null
                 ,null
                 ,'co_municipio');
              $g->addColumn('co_municipio' ,'Código');
              $g->addColumn('no_municipio' ,'Nome');
              $g->addColumn('sg_uf'  ,'UF');
              $g->addColumn('no_microregiao' ,'Microregião');
              $g->addButton('Alterar',null,'btnAlterar','alterar_municipio',null,'alterar.gif');
              $g->addButton('Excluir',null,'btnExcluir','excluir_municipio','Confirma a Exclusão?','lixeira.gif');
              $g->show();
              ?>

               

              • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                25 de Julho de 2012, 19:39

                 

                Lendro,

                na função fwGetGrid() voce deve informar o nome do módulo completo, tente passar assim:

                fwGetGride("cidades.php"...);

                ou

                fwGetGride("modulos/cidades/cidades.php"...);

                 Abraço.

                • 4210951d8ebd1c937e4efe1938358d3f?only path=false&size=50&d=404Leandro Santos(usuário não autenticado)
                  25 de Julho de 2012, 20:26

                   

                  Não funcionou, quando clico no botão pesquisar nada acontece.

                  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                    27 de Julho de 2012, 15:23

                     

                    Leando,

                    eu escrevi errado o nome da função: não é fwGetGride() e sem fwGetGrid() sem o "e" no final.

                    Deve ser isso, senão me mande a pasta do modulo zipada para o e-mail luis.barbosa@ibama.gov.br  para ver se eu consigo te ajudar.

                    Abraço.

Essa comunidade não possui posts nesse blog