PD
Confirmação antes do envio de formulários
Fechado
Neste exemplo, vamos demonstrar como perguntar ao usuário uma confirmação antes da postagem definitiva dos dados do formulário. Neste caso, estamos criando um quick form com dois campos e um botão "Salvar" conectado com o método onSave(). Quando o método onSave() é executado, o usuário é questionado se deseja confirmar. Se sim, então o método confirm() é executado, exibindo os dados do formulário em uma mensagem de diálogo.
- <?php
- /**
- * ConfirmationForm report
- *
- * @version 1.0
- * @package samples
- * @subpackage tutor
- * @author Pablo Dall'Oglio
- * @copyright Copyright (c) 2006-2011 Adianti Solutions Ltd. (http://www.adianti.com.br)
- * @license http://www.adianti.com.br/framework-license
- */
- class ConfirmationFormView extends TPage
- {
- private $form;
- /**
- * Class constructor
- * Creates the page and the registration form
- */
- function __construct()
- {
- parent::__construct();
- // create the form using TQuickForm class
- $this->form = new TQuickForm;
- 405 = new TEntry('id');
- $description = new TEntry('description');
- $this->form->addQuickField('Id', 405, 40);
- $this->form->addQuickField('Description', $description, 200);
- $this->form->addQuickAction('Save', new TAction(array($this, 'onSave')), 'ico_save.png');
- // add the form to the page
- parent::add($this->form);
- }
- /**
- * method onSave()
- * Executed whenever the user clicks at the Save button
- */
- function onSave()
- {
- try
- {
- $data = $this->form->getData();
- $action1 = new TAction(array($this, 'confirm'));
- $action1->setParameter('data', json_encode($data));
- $question = new TQuestion('Confirm ?', $action1);
- $this->form->setData($data);
- }
- catch (Exception $e) // in case of exception
- {
- // shows the exception error message
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- }
- }
- /**
- * Confirm
- */
- function confirm($param)
- {
- $object = json_decode($param['data']);
- $message = $object->id.'<br>'.
- $object->description;
- new TMessage('info', $message);
- }
- }
- ?>
No caso de ter dois campos: senha e confirmasenha, como faço para validar (comparar as senhas)?
Pablo, tem uma maneira de chamar um TQuestion de dentro de um metodo para validar a execução de um determinado bloco.
Por exemplo, no meu caso eu tenho um botão no formulário para enviar o mesmo por e-mail, dentro do método que envia o e-mail gostaria de perguntar ao usuário se ele deseja enviar uma cópia para um outro grupo de e-mails.