Ir para o conteúdo

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

TGrid + Modal

28 de Junho de 2012, 22:18 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 20 vezes

Boa noite!

Preciso saber como enviar dados de um TGrid para uma tela Modal, veja no link abaixo a imagem explicando:

 

Autor: Gerfferson Santos


55 comentários

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

     

    Gerfferson,

    existema algumas formas de fazer isso, você pode enviar todos os dados via url ou passar apenas o valor da chave do registro e recuperar os dados na tela de edição, fou exemplificar a segunda que acho mais correta.

    Primeiro voce tem que adicionar manualmente os botões no gride caso esteja utilizando os botões padrão que a classe cria. Então os botões do gride ficariam assim:

                    $g->addButton('Alterar','alterar','btnAlterar','alterar()',null,'editar.gif');
                    $g->addButton('Excluir','gd_excluir','btnExcluir',null,null,'lixeira.gif');
                    $g->show();
    A ação alterar() vai receber os parametros "campo e valor" que é o que vamos enviar para o form de edição:

     function alterar(campo,valor) // função javascript que abre a janela modal
    {
        var dados = fwFV2O(campo,valor ); // tranforma os parametros enviados pelo gride em um objeto
        fwModalBox('Alteração','index.php?modulo=MODULO.php',300,800,null,dados);
    }

    onde MODULO.php é o seu formulario de alteração.Neste modulo voce verifica se a variavel $acao é nula e se for nula é significa que é a primeira requisição então voce recupera os dados do banco de dados e alimenta os campos do formulario:

    if( !$acao )
    {
        $dados = MeuDao::Select( $_REQUEST['id'] );
        $frm->update($dados); // se os campos do form tiverem o mesmo nome das colunas da tabela.
    }

    Lembre-se que no formulário modal tem que ter o campo oculto para a coluna chave da tabela.

    Abraço.

  • E87cffb7d0af3700ae7ad9ac873b3615?only path=false&size=50&d=404Francisco Eduardo Soares(usuário não autenticado)
    26 de Abril de 2013, 15:39

     

    Boa tarde! 

    Meu problema é parecido, sendo na situação inversa. Meu Grid possui o botão cancelar, quando pressionado ele aparece um modal para preencher a justificativa do cancelamento.Preciso quando clicar no botão salvar ele atualize o grid automaticamente.

    Desde já agradeço quer poder me ajudar! 

    • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
      29 de Abril de 2013, 13:53

       

      Francisco,

      neste caso voce terá que utilizar a função de callback da função onlinesearch. Esta função receberá 2 parametros sendo o primeiro dados e form. Com o objeto data voce poderá ter acesso aos campos do formModal e o form é um objeto form do formulário modal.

      Veja no exemplo base/exemplos/exe_TForm2.php  que abre o exe_TForm.php como subcadastro e pega o valores no retorno a fechar.

      A função callback de retorno fica assim:

      function callbackModaBox(data, doc )
      {
          var msg;
          // exemplo de tratamento do retorno do subcadastro
          msg = 'A função callbackModalBox() foi executada!\n\nAcessando os dados da janela modal:\n'+'Campo nome = '+data.nome+'\nCores:'+String(data.cor);
          try{
              msg+='\n\n A cor '+data.cor[0]+' foi selecionada';
          } catch(e){};
          jQuery("#nome2").val(data.nome); // campo nome do subcadastro

      // ou utilizando getElementById() do subcadastro.
          msg +='\n\nUsando getElementById("nome").value='+doc.getElementById('nome').value;
          alert( msg );
      }

       Abraço.

Essa comunidade não possui posts nesse blog