Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
Como usar o getValue do TField? Boa tarde galera, Alguém pode me dizer o que faz o método getValue da classe TField? Imagino que ela é o contrário do setValue, porém ao tentar utilizá-la não funciona....
TF
Como usar o getValue do TField?  
Fechado
Boa tarde galera,
Alguém pode me dizer o que faz o método getValue da classe TField? Imagino que ela é o contrário do setValue, porém ao tentar utilizá-la não funciona.

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 (9)


MG

Olá Tiago

Sim em tem o objetivo de retornar o valor armazenado em um TField.

O TField tem valor nele?

Posta o código para podermos avaliar.
TF

 
  1. <?php
  2. class ControleCaixa extends Configuracao{
  3. private $form;
  4. function __construct(){
  5. parent::__construct();
  6. $this->form = new TForm('form_gerenciamento_mesas');
  7. $this->form->class = 'tform'; //Classe CSS
  8. $this->form->style = 'width: 650px';
  9. $tabela = new TTable;
  10. $tabela->width = '100%';
  11. $tabela_botoes = new TTable;
  12. $this->form->add($tabela);
  13. $id = new TEntry('id');
  14. $numMesas = new TEntry('num_mesas');
  15. $descricao = new TText('descricao');
  16. // configuracao de campo
  17. $id->setSize(40);
  18. $id->setEditable(false);
  19. $numMesas->setMask('9999');
  20. $numMesas->setSize(50);
  21. $descricao->setSize(500, 30);
  22. $numMesas->addValidation('número de mesas', new TRequiredValidator); // campo obrigatório
  23. echo $numMesas->getValue;
  24. (...)
  25. Gostaria escreve natela o valor do $numMesas.
  26. Como eu faço?
MG

Tiago
Veja que em momento algum você adiciona valor ao campo, portanto você obtém o valor "nulo".
Tenta assim antes de usar "get".

 
  1. <?php
  2. (...)
  3. $numMesas->setValue(1);
  4. echo "Nùmero de mesas : " . $numMesas->getValue();
  5. (...)
  6. ?>

MG

Outro detalhe é que o campo não será preenchido pelo usuário?
Então o valor será informado na tela e você deverá ter um evento onSave(), onde irá capturar todos os valores e persistir num banco de dados e depois disso exibí-los na tela.
TF

Tenho um formulário que é alimentado com dados vindo do BD e mesmo assim o getValue não exibe seu valor. Já abro o formulário preenchido pelo BD. Como acontece nesses casos?
TF

Esse formulário é alimentado no onEdit:

function onEdit($param){
try{
if (isset($param['key'])){

$key = $param['key'];

TTransaction::open('bdCardapio');

$objeto = new Funcionamentos($key);

$this->form->setData($objeto);

TTransaction::close();
}
else{
$this->form->clear();
}
}
catch (Exception $e){
new TMessage('error', 'Error ' . $e->getMessage());
TTransaction::rollback();
}
}
FC

Para o getvalue exibir o valor tem que vir de algum lugar ! do banco ele vem como objeto tipo $objeto->nome, igual a seção o getValue busca o valor armazenado na seção, no caso do TField tem que sem apos "postar" o form ou com uma função estatica via ajax.
PD

Oi People,

O TField::setValue() ou TForm::setData() são usados somente para jogar valores para os objetos em memória. Depois esses objetos são "exibidos" em tela.

Depois do POST, para pegar os dados do usuário, use TForm::getData(), que por usa vez chama o getPostData() de cada objeto...

Att,
Pablo
TF

Obrigado Pablo e Felipe, para resolver eu pegue os dados vindos do DB, no onEdit, e alimento uma TSession, onde o exibo no construct. Deu certo.