ML
getData nao retorna valores
Boa noite,
Depois de muitas tentativas e erros, consegui colocar um calendar ao lado de uma grid.
Mas estou fazendo alguma coisa errada com o form que nao consigo pegar dados no getData. (var_dump retorna vazio)
Segue codigo:
Depois de muitas tentativas e erros, consegui colocar um calendar ao lado de uma grid.
Mas estou fazendo alguma coisa errada com o form que nao consigo pegar dados no getData. (var_dump retorna vazio)
Segue codigo:
- <?php
- public function __construct()
- {
- parent::__construct();
- $this->form = new BootstrapFormBuilder('form_Agendamento');
- $panel_geral = new TPanelGroup( 'Agenda' );
- $hbox = new THBox;
- $hbox->style = 'width: 100%';
- $hbox->pack(1);
- $this->form->add($panel_geral);
- $panel_geral->add($hbox);
- $frame_datagrid = new TFrame;
- $frame_datagrid->class = 'tframe tframe-custom';
- $frame_datagrid->style = 'background:whiteSmoke';
- $tabela_datagrid = new TTable;
- $tabela_datagrid->width = '100%';
- $frame_datagrid->add($tabela_datagrid);
- $frame_calendar = new TFrame;
- $frame_calendar->class = 'tframe tframe-custom';
- $frame_calendar->style = 'background:whiteSmoke';
- $tabela_calendar = new TTable;
- $tabela_calendar->width = '100%';
- $frame_calendar->add($tabela_calendar);
- $hbox->add($frame_datagrid);
- $hbox->add($frame_calendar);
- $critMed = new TCriteria();
- $critMed->add(new TFilter('ativo','=','S'));
- $medico_id = new TDBCombo('medico_id', 'SysClinicaWeb', 'MedicosModel', 'id', 'nome','nome' ,$critMed );
- $medico_id->style = ('text-align:center;color:#00688B;font-weight:bold;font-size:14px;');
- $data_consulta = new THidden('data_consulta');
- $btn_filtrar = new TButton('filtrar');
- $btn_filtrar->setAction(new TAction(array($this, 'onSearch')), ('<b>Filtrar<b>'));
- $btn_filtrar->setImage('fa:search');
- $btn_filtrar->class = 'btn btn-info btn-md';
- $medico_id->setSize('100%');
- $data_consulta->setSize('80%');
- $this->form->setData( TSession::getValue('AgendaModel_filter_data') );
- // creates a Datagrid
- $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid->style = 'width: 100%';
- $this->datagrid->disableDefaultClick();
- // creates the datagrid columns
- $column_data_consulta = new TDataGridColumn('data_consulta', 'Data', 'left');
- $column_hora = new TDataGridColumn('hora', 'Hora', 'left');
- $column_cliente_id = new TDataGridColumn('cliente->nome', 'Cliente', 'left');
- $column_medico_id = new TDataGridColumn('medico->nome', 'Médico', 'left');
- $column_convenio_id = new TDataGridColumn('convenio->descricao', 'Convênio', 'left');
- $column_tipoagenda_id = new TDataGridColumn('servico->descricao', 'Agenda', 'left');
- $column_status = new TDataGridColumn('status', 'Status', 'left');
- $column_data_consulta ->setTransformer(array($this, 'formatDate'));
- $column_hora ->setTransformer(array($this, 'formatTime'));
- $column_status ->setTransformer(array($this, 'formatCor'));
- // add the columns to the DataGrid
- $this->datagrid->addColumn($column_data_consulta);
- $this->datagrid->addColumn($column_hora);
- $this->datagrid->addColumn($column_cliente_id);
- $this->datagrid->addColumn($column_medico_id);
- $this->datagrid->addColumn($column_convenio_id);
- $this->datagrid->addColumn($column_tipoagenda_id);
- $this->datagrid->addColumn($column_status);
- $action_atender = new TDataGridAction(array('ConveniosForm', 'onEdit'));
- $action_atender->setLabel('Atendimento');
- $action_atender->setImage('bs:hand-right green');
- $action_atender->setField('id');
- $action_cadCliente = new TDataGridAction(array('ClientesForm', 'onEdit'));
- $action_cadCliente->setLabel('Cadastro do Cliente');
- $action_cadCliente->setImage('bs:fas fa-undo green');
- $action_cadCliente->setField('cliente_id');
- $action_group = new TDataGridActionGroup('Ações', 'bs:th');
- $action_group->addHeader('');
- $action_group->addAction($action_atender);
- $action_group->addAction($action_cadCliente);
- $this->datagrid->addActionGroup($action_group);
- // create the datagrid model
- $this->datagrid->createModel();
- // creates the page navigation
- $this->pageNavigation = new TPageNavigation;
- $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
- $this->pageNavigation->setWidth($this->datagrid->getWidth());
- $this->calendar = new TCalendar;
- $this->calendar->setMonth(date('n'));
- $this->calendar->setYear(date('Y'));
- $this->calendar->selectDays(array( date('d') ));
- $this->calendar->setSize(250,190);
- $this->calendar->setAction( new TAction(array($this, 'onSearch')) );
- $year = new THidden('year');
- $month = new THidden('month');
- $day = new THidden('day');
- $year->setSize(20);
- $month->setSize(20);
- $day->setSize(20);
- $year->setValue( $this->calendar->getYear() );
- $month->setValue( $this->calendar->getMonth() );
- $tabela->addRowSet('', array($day, $month, $year ));
- $btnVoltar = new TButton('btnVoltar');
- $btnVoltar->setAction(new TAction(array($this, 'onBack',)), 'Anterior' );
- $btnVoltar->setImage('fa:arrow-circle-o-left orange');
- $btnProximo = new TButton('btnProximo');
- $btnProximo->setAction(new TAction(array($this, 'onNext',)), 'Próximo' );
- $btnProximo->setImage('fa:arrow-circle-o-right blue');
- $btnHoje = new TButton('btnHoje');
- $btnHoje->setAction(new TAction(array($this, 'onHoje',)), 'Hoje' );
- $btnHoje->setImage('fa:arrow-circle-o-left orange');
- $frame_datagrid->add($this->datagrid);
- $frame_datagrid->add($this->pageNavigation);
- $frame_calendar->add($this->calendar);
- $frame_calendar->add($btnVoltar);
- $frame_calendar->add($btnHoje);
- $frame_calendar->add($btnProximo);
- $tabela_calendar->addRowSet('Médico', array($medico_id ));
- $this->formFields = array($data_consulta, $medico_id);
- $this->form->setFields(array( $btnVoltar, $btnProximo, $medico_id, $year, $month, $day, $btnHoje, $data_consulta ));
- parent::add($panel_geral);
- }
- public function onSearch()
- {
- $data = $this->form->getData();
- var_dump($data);
- AQUI RETORNA VAZIO... preciso pegar o campo medico_id, e a data clicado no calendar.
- }
- ?>
Você não adicionou o form à página, por isso o post não retorna nada.
Obrigado Nataniel. Abraço.