{meta}

A melhor parceira de TI para o seu negócio English version

Adianti Forum

Conheça mais sobre com o livro:

Adianti Framework para PHP

  • Instalação e configuração;
  • Modelos e persistência;
  • Componentes de apresentação;
  • Organização e controle;
  • Desenvolvimento ágil com Studio Pro.
Ver detalhes...

Busca

Digite o termo a ser localizado:

Lista de discussões

Cadastrar no grupo adianti-tools-pt:
Postagem estática (sem recarga) de formulários Pablo Dall'Oglio ( 2015-04-30)
O Adianti Framework usa de maneira extensiva Requisições AJAX em todos os processamentos de ações. Quando clicamos em uma ação de uma datagrid ou enviamos os dados de um formulário, somente o núcleo da página é recarregado, e não toda a página. Com isso, a navegação fica bastante fluida. Em um formulário, por exemplo, somente o núcleo da tela é atualizado para demonstrar as atualizações que os campos sofreram após a postagem da ação. Como por exemplo, podemos citar o ID que é preenchido após a postagem.

Formulário


Entretanto, podemos até mesmo desligar esse comportamento e realizar a postagem estática do formulário. A postagem estática irá enviar os dados para o método, mas não irá recarregar o núcleo da página. O lado positivo é que serão transmitidos menos dados na requisição. O lado negativo é que não podemos usar a variável $this dentro de um método estático. Assim, devemos coletar os dados por meio do parâmetro $param.

No exemplo a seguir, pegamos o exemplo FormQuickView, que vem junto com o tutor, e marcamos o método onSave() como STATIC. Somente isso já fará com que somente os dados do formulário sejam postados para o método onSave(). Com isso, nenhuma parte da tela será recarregada, nem ao menos o formulário, como tradicionalmente ocorre. Nesse caso, não podemos usar a variável $this para chamar o $this->form->getData(), mas podemos obter todos os dados a partir da variável $param, que é um vetor. Dentro de um método estático podemos criar diálogos (TMessage) e também podemos invocar métodos estáticos como TForm::sendData().

  1. <?php
  2. class FormQuickView extends TPage
  3. {
  4.     function __construct() { ... }
  5.     public static function onSave($param)
  6.     {
  7.         // cria uma string com os valores dos elementos do formulário
  8.         $message 'Id: '           $param['id'] . '<br>';
  9.         $message.= 'Description : ' $param['description'] . '<br>';
  10.         $message.= 'Date1: '        $param['date1'] . '<br>';
  11.         $message.= 'Date2: '        $param['date2'] . '<br>';
  12.         $message.= 'Color : '       $param['color'] . '<br>';
  13.         $message.= 'List : '        $param['list'] . '<br>';
  14.         $message.= 'Text : '        $param['text'] . '<br>';
  15.         
  16.         // exibe a mensagem
  17.         new TMessage('info'$message);
  18.     }
  19. }
  20. ?>


Obs: Para conferir a mudança, você pode inspecionar a página e monitorar o tamanho da requisição na aba "Network".


Comentários

Matheus Lima: ( 2017-04-03)
Dentro desse metodo static eu posso atualizar um datagrid dos dados capturados com $param na minha pagina ?
 


Você precisa realizar login para enviar posts, comentários, dentre outros. Para isso, clique em um dos botões a seguir para logar utilizando a API de um dos serviços.