Passar um valor campo para campo Hidden Boa noite , pessoal estou me batendo, como eu passo um valor por exemplo , $_REQUEST['cod'] para um campo Hidden. estou tentando assim Mas o valor não é setado. Se eu der um var_dump aparece assim: Desde já agradeço a...
WR
Passar um valor campo para campo Hidden  
Fechado
Boa noite , pessoal estou me batendo, como eu passo um valor por exemplo , $_REQUEST['cod'] para um campo Hidden.
estou tentando assim

<?php$hidden = new THidden('cod');$hidden->setValue($_REQUEST['cod']);?>


Mas o valor não é setado.
Se eu der um var_dump
<?phpvar_dump($this->form->getData());  ?>

aparece assim:

<?php["cod"]=> string(0) ""?>


Desde já agradeço a todos.
Abraços

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (11)


WR

Observação : Estou tentado pegar os dados vindo de uma url (via get) . exemplo: cod=8&key=b6979cf5d08342beecb49049181716a5
AA

Na contrução da classe não é possível pegar valor dessa maneira, poste mais detalhes do código: onde que vc chama o método get, e qual função ele chama por exemplo
WR

Olá Anderson, não estou com meu computador agora, de tarde eu te passo as classes que estou usuando.
Ontem a noite ainda tentei com TSession, mas ao recuperar as informações vem NULL.

Abraços
WR

Segue o código da classe que estou fazendo, eu acabei mudando para TSession invés de THidden.

É enviado por e-mail um link para o usuário redefinir a senha,(localhost/juntos/index.php?class=RedefinirSenha&method=&id=8)
ao clicar no link o usuário é redirecionado para a classe a baixo.




<?php/** * FormQuickView * * @version    1.0 * @package    samples * @subpackage tutor * @author     Pablo Dall'Oglio * @copyright  Copyright (c) 2006-2014 Adianti Solutions Ltd. (http://www.adianti.com.br) * @license    http://www.adianti.com.br/framework-license */class RedefinirSenha extends TPage{    private $form;        /**     * Class constructor     * Creates the page     */    function __construct()    {        parent::__construct();                new TSession;                 //var_dump($_REQUEST);        $iduser = $_REQUEST['id'];        $keyuser = $_REQUEST['key'];                TSession::setValue('usuario_id',"$iduser");        TSession::setValue('usuario_key',"$keyuser");        //$hidden_id =  new THidden('id');        // $hidden_id->getPostData($_REQUEST['id']);        //$hidden_id->setValue($_REQUEST['id']);        // $hidden_hash = new THidden('key');                      // create the form        $this->form = new TForm;        $this->form->class = 'tform';        $this->form->style = 'max-width: 650px; margin-left:200px; margin-top:0px;';                // creates the form field container        $table = new TTable;        $table->width = '100%';        $this->form->add($table);                        // title row        $table->addRowSet( new TLabel('Alterar Senha'), '' )->class='tformtitle';                // create the form fields        $senha = new TPassword('senha');        $senha->setSize(400);        $senha->style = 'height:30px;margin-bottom: 15px;font-size:12px;float:left;border-bottom-left-radius: 0;border-top-left-radius: 0;';               $senha->addValidation('email', new TRequiredValidator); // email field                // create the form fields        $csenha = new TPassword('csenha');        $csenha->setSize(400);        $csenha->style = 'height:30px;margin-bottom: 15px;font-size:12px;float:left;border-bottom-left-radius: 0;border-top-left-radius: 0;';               $csenha->addValidation('email', new TRequiredValidator); // email field                               // add a row for one field                $table->addRowSet( new TLabel('Nova Senha:'), $senha );        $table->addRowSet( new TLabel('Repita Senha:'), $csenha );                    // creates the action button        $button1=new TButton('action1');        $button1->setAction(new TAction(array($this, 'onSave')), 'Enviar');        $button1->setImage('ico_email.png');                // add a row for the button        $table->addRowSet( $button1, '' )->class = 'tformaction';                // define wich are the form fields        $this->form->setFields(array($senha,$csenha, $button1));                // wrap the page content using vertical box        $vbox = new TVBox;       // $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $vbox->add($this->form);        parent::add($vbox);    }        /**     * Simulates an save button     * Show the form content     */    public function onSave($param)    {         try         {             TTransaction::open('mestrado2');           // new TSession();                          $data = $this->form->getData();            //var_dump($data);                   $criteria = new TCriteria();             $criteria->add(new TFilter('id','=', TSession::getValue('usuario_id')));             $criteria->add(new TFilter('email','=', TSession::getValue('usuario_key')));             $repository = new TRepository('SystemUser');             $user = $repository->load($criteria);             if (!$user)             {                 new TMessage('error','Usuário não existe na base dados');             }             else             {                 try                 {                 foreach($user as $usuario){                                     if($hash == $data->key){                        $usuario->password = $data->senha;                        $usuario->save();                    }else{                        new TMessage('error','Dados inválidos!');                     }                                                                           TCoreApplication::gotoPage('LoginForm');                  }                }                  catch (Exception $e)                 {                     new TMessage('error','Erro : ' . $e->getMessage());                 }                 }                 $this->form->setData($data);                 TTransaction::close();         }         catch (Exception $e)         {         new TMessage('error','Erro : ' . $e->getMessage());         }   }}?>


AA

Primeiro vc precisa criar um método, ex: onLoad na sua classe. Dentro desse método vc carregaria os dados do id que vc passou por parametro

depois na url ficaria assim localhost/juntos/index.php?class=RedefinirSenha&method=onLoad&id=8

Dentro do método, vc carrega os dados, e envia para o formulário através do método setData. Dá uma olhada nos exemplos do tutor, tem bastante exemplos bacana pra estudo.
WR

Anderson, obrigado pelas dicas. Mais tarde vou fazer conforme você orientou e ver se consigo resolver.

Abraços
WR

Olá Anderson, eu criei o método onLoad na classe e alterei para gerar o link no modelo que você me passou.

<?phphttp://localhost/juntos/index.php?class=RedefinirSenha&method=onLoad=&id=8&key=b6979cf5d08342beecb49049181716a5?>


Quando clicando no link na URL não aparece o método onLoad. (conforme a baixo)
<?phphttp://localhost/juntos/index.php?class=RedefinirSenha&method=&id=8&key=b6979cf5d08342beecb49049181716a5?>


Método onLoad
<?phppublic function onLoad($param = NULL)    {         new TSession();                $id = $param['id'];         $key =  $param['key'] ;         new TMessage('error',$id."--".$key);         // keep the search data in the session         TSession::setValue('id_user', $id);         TSession::setValue('key_user', $key);         // fill the form with data again         //$this->form->setData($data);            }?>

Não usei o setData ,pois os dados não irão aparecer no formulários. Na verdade oque eu preciso é que os dados recebidos via URL (id e key) sejam gravados na Session para depois serem recuperados no momento do onSave onde eu faço uma busca no banco com base nesses dados.

Abraços

AA

Onde que você gera o link? é usando um TAction? tem como postar o código?
WR

Anderson , o link é gerado por outra classe no onSave da classe.
<?phppublic function onSave($param)    {         try         {             TTransaction::open('banco');                         $data = $this->form->getData();                         $criteria = new TCriteria();             $criteria->add(new TFilter('email','=',$data->email));             $repository = new TRepository('SystemUser');             $user = $repository->load($criteria);             if (!$user)             {                 new TMessage('error','E-mail não existe na base dados');             }             else             {                 try                 {                 foreach($user as $usuario){                                     $key = md5($usuario->id . "" . $usuario->email);                                         $body = "Olá, " . $usuario->name . "                     ";                     $body .= "Você solicitou a redefinição de senha de acesso à área de suporte.                    ";                     $body .= "Clique no link abaixo e você será redirecionado a uma página onde poderá redefinir sua senha de acesso.                    ";                     $link = "<a href='localhost/juntos/index.php?class=RedefinirSenha&method=onLoad&id=" .$usuario->id ."&key=" . $key. "'>Redefinir Senha</a>";  //AQUI GERA O LINK                    $body .= " ".$link;                     $body .= "Att.                    ";                                        $assunto = ' Redefinir senha de acesso';                    $seu_email = 'sacjuntos@gmail.com';                                       $host_do_email = 'smtp.gmail.com ';                                        //classe email                    $mail = new PHPMailer();                    $mail->SMTPDebug = 3;                     /* Configura os destinatários (pra quem vai o email) */                    $mail->AddAddress(trim($usuario->email),$usuario->name);                    // $mail->AddAddress('email@email.com');                    // $mail->AddCC('email@email.com', 'Nome da pessoa'); // Copia                    // $mail->AddBCC('email@email.com', 'Nome da pessoa'); // Cópia Oculta                                                                         /* Define que é uma conexão SMTP */                    $mail->IsSMTP();                    /* Define o endereço do servidor de envio */                    $mail->Host = gethostbyname($host_do_email);                    //$mail->Host = $host_do_email;                    /* Utilizar autenticação SMTP */                     $mail->SMTPAuth = true;                    /* Protocolo da conexão */                    $mail->SMTPSecure = "tls";                    /* Porta da conexão */                    $mail->Port = "587";                    /* Email ou usuário para autenticação */                    $mail->Username = $seu_email;                    /* Senha do usuário */                    $mail->Password = $sua_senha;                                         /* Configura os dados do remetente do email */                    $mail->From = $seu_email; // Seu e-mail                    $mail->FromName = $seu_nome; // Seu nome                                         /* Configura a mensagem */                    $mail->IsHTML(true); // Configura um e-mail em HTML                                         /*                        * Se tiver problemas com acentos, modifique o charset                     * para ISO-8859-1                       */                    $mail->CharSet = 'UTF-8'; // Charset da mensagem (opcional)                                         /* Configura o texto e assunto */                    $mail->Subject  = $assunto; // Assunto da mensagem                    $mail->Body = $body; // A mensagem em HTML                    //$mail->AltBody = trim(strip_tags($body)); // A mesma mensagem em texto puro                                         /* Configura o anexo a ser enviado (se tiver um) */                    //$mail->AddAttachment("foto.jpg", "foto.jpg");  // Insere um anexo                                         /* Envia o email */                    $email_enviado = $mail->Send();                                         /* Limpa tudo */                    $mail->ClearAllRecipients();                    $mail->ClearAttachments();                                         /* Mostra se o email foi enviado ou não */                    if ($email_enviado) {                        new TMessage('info','E-mail enviado com sucesso');                     } else {                        new TMessage('info',$mail->ErrorInfo);                     }                                     TApplication::gotoPage('LoginForm');                  }                }                  catch (Exception $e)                 {                     new TMessage('error','Erro : ' . $e->getMessage());                 }                 } ?>
WR

Anderson, depois de tanto quebrar a cabeça e perder alguns fios de cabelo consegui resolver. Agradeço sua disposição em tentar ajudar.


Abraços
AA

Que bom que conseguiu resolver, se possível, poste a solução.