Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Campo date Amigos boa tarde! Estou com a seguinte dificuldade, tenho um form com duas datas inicial e final, o componente de data está preenchendo somente um dos campos, não é apresentando um componente para cada campo. Segue abaixo o código que estou utilizando. ...
PC
Campo date  
Fechado

Amigos boa tarde!

Estou com a seguinte dificuldade, tenho um form com duas datas inicial e final, o componente de data está preenchendo somente um dos campos, não é apresentando um componente para cada campo.

Segue abaixo o código que estou utilizando.
  1. <?php
  2. class TesteForm extends TPage
  3. {
  4.     private $form_teste;
  5.     
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         $this->form = new TForm;
  10.         $table = new TTable;
  11.         $this->form->add($table);
  12.         
  13.         $datai = new TDate('datai');
  14.         $dataf = new TDate('dataf');
  15.         
  16.         $table->addRowSet(new TLabel('Data Inicial'),array($datai,new TLabel('Data Final'),$dataf));
  17.         
  18.         $this->form->setFields(array($datai,$dataf));
  19.         
  20.         $vbox = new TVBox;
  21.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  22.         $vbox->add($this->form);
  23.         
  24.         parent::add($vbox);
  25.         
  26.     }
  27. }
  28. ?>

Em anexo segue imagem de como os campos estão sendo exibidos.

Agradeço desde já a ajuda.
Grato

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (6)


ES

Olá Paulo!
Seu componente está aparecendo sim, porém parece que o tamanho reservado para a apresentação acabou ou os campos estão muito grande.

Faça o seguinte: set o tamanho dos campos com a propriedade size e utilize por volta de 80 a 100 no tamanho. Creio que ficará legal.

atte.
Eliezer
PC

Realizei a alteração, porém, o problema persiste.

  1. <?php
  2. class TesteForm extends TPage
  3. {
  4.     private $form_teste;
  5.     
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         $this->form = new TForm;
  10.         $this->form->class 'tform';
  11.         $this->form->style='width:900px;height:300px';
  12.         $table = new TTable;
  13.         $table-> width '100%';
  14.         $this->form->add($table);
  15.         
  16.         $datai = new TDate('datai');
  17.         $dataf = new TDate('dataf');
  18.         
  19.         $datai->setSize(80);
  20.         $dataf->setSize(80);
  21.         
  22.         $table->addRowSet(new TLabel('Data Inicial'),array($datai,new TLabel('Data Final'),$dataf));
  23.         
  24.         $this->form->setFields(array($datai,$dataf));
  25.         
  26.         $vbox = new TVBox;
  27.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  28.         $vbox->add($this->form);
  29.         
  30.         parent::add($vbox);
  31.         
  32.     }
  33. }
  34. ?>
PD

Paulo,

Colei seu código dentro do Tutor e o mesmo executou perfeitamente.
Isto me leva a crer que existe alguma coisa que foi mudada em sua
aplicação (estilos CSS, sobreescrita de classes) que está afetando
o funcionamento. Verifique se você está usando TODOS componentes
e estilos originais. Também evite de estipular altura (height) para
o form, isso não faz sentido.

Abraço,
R

Também estou com problemas no campo TDate.
No meu caso, também utilizo dois campos de data no mesmo form, o primeiro aparece ok, o segundo aparece com o botão de inserção automático de data desconfigurado, e ao clicá-lo ele altera a data do primeiro campo novamente, e não do segundo. Estou utilizando o Framework sem modificações alguma. O engraçado, é que também tenho instalado o Tutor, e no "FormQuickView" o mesmo erro acontece no Tutor. Porém, quando acesso a versão online do tutor, a mesma classe "FormQuickView" é exibida corretamente. Penso que talvez possa ter relação com o fato do meu servidor de testes ser Windows, versão de Apache, PHP, ou algo do tipo. Mas ainda não descobri.
R

Pessoal, identifiquei que o ID dos campos de data, que deveria ser único para cada um, estava ficando igual no resultado final do navegador, por alguma razão que desconheço, pois utilizei nomes diferentes para cada campo, inseri no form individualmente e tudo mais.
Então resolvi dar uma analisada na classe TDate e verifiquei que por alguma razão a função "uniqid()" neste caso não está gerando um id único para cada campo, se alguém souber me avise, pois com certeza é o mesmo problema que o amigo Paulo Correa teve. Mas enfim, para resolver eu modifiquei a linha 31, da classe "TDate", conforme abaixo:

Original:
  1. <?php
  2.  public function __construct($name//28
  3.     {                                                    //29 
  4.         parent::__construct($name);    //30
  5.         $this->id   'tdate_'.uniqid()     //31 - como é originalmente
  6. ?>


Alterada:
  1. <?php
  2.  public function __construct($name//28
  3.     {                                                    //29 
  4.         parent::__construct($name);    //30
  5.         $this->id   'tdate_'.uniqid().rand('1','5000'); //31 - como eu alterei para funcionar
  6. ?>


Abraços!
R

Só para constar, eu tentei simplesmente ativar mais entropia no uniqid(), mas aí ele simplesmente sumia com o datepicker dos campos. Como estava sem tempo deixei concatenando com o rand() mesmo, pois funcionou. Se alguém tiver outra sugestão, ou apontar possíveis consequências desta alteração eu agradeço.

abraços!