Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Post em subformulario retorna vazio Boa noite prezados, Estou tentando gravar dados de um subformulario sem sucesso, Colocando os fields dntro form principal o var_dump($param) retorna 100%, mais se os fields estiverem dentro do subform as variaves do post nem sao recebidas no var_dump($param), é possivel ter um form dentro de outro no framework? Segue codigo: $this->form = new BootstrapFormBuilder('...
RS
Post em subformulario retorna vazio  
Boa noite prezados,

Estou tentando gravar dados de um subformulario sem sucesso,

Colocando os fields dntro form principal o var_dump($param) retorna 100%, mais se os fields estiverem dentro do subform as variaves do post nem sao recebidas no var_dump($param), é possivel ter um form dentro de outro no framework?

Segue codigo:
$this->form = new BootstrapFormBuilder('fm_empresa'); $this->form->setFormTitle('Cadastro de Empresas'); $this->form->style = 'width:100%'; $socio_id = new TDBSeekButton('socio_id', $this->database, 'fm_empresa', 'TbEntidade', 'ds_nome', 'socio_id'); $socio_ds = new TEntry('socio_ds'); $socio_id->setAuxiliar($socio_ds); $socio_dt_entrada = new TDate('socio_dt_entrada'); $socio_dt_saida = new TDate('socio_dt_saida'); $socio_nr_quotas = new TEntry('socio_nr_quotas'); $fm_socio = new BootstrapFormBuilder; $fm_socio->style = 'width:100%'; $row = $fm_socio->addFields( [ new TLabel('Sócio'), $socio_id ] ); $row->layout = ['col-sm-12']; $row = $fm_socio->addFields( [ new TLabel('Dt. entrada'), $socio_dt_entrada ], [ new TLabel('Dt saída'), $socio_dt_saida ], [ new TLabel('Nr quotas'), $socio_nr_quotas ] ); $row->layout = ['col-sm-2', 'col-sm-2', 'col-sm-2']; $fm_socio->addAction(_t('Save'), new TAction([$this, 'addSocio']), 'fa:save purple'); $this->form->addContent([$fm_socio]); $this->form->addAction(_t('Save'), new TAction([$this, 'onSave']), 'fa: fa-save')->class='btn btn-purple'; $this->form->addAction(_t('Back'), new TAction(['TbEmpresaList', 'onReload']), 'fa:arrow-circle-left blue'); $this->form->addAction(_t('New'), new TAction([$this, 'onEdit']), 'fa:plus-circle green'); $container = new TVBox; $container->style = 'width:100%; overflow-x:auto'; $container->add(TBreadCrumb::create(['Geral', 'Cadastro de Empresas'], TRUE)); $container->add($this->form); parent::add($container); // adiciona socio public function addSocio($param) { TTransaction::open($this->database); if(!empty($param['socio_id'])) { $id = $param['socio_id']; $TbEmpresaSocio = new TbEmpresaSocio; $TbEmpresaSocio->cd_empresa = $this->getCurId(); $TbEmpresaSocio->cd_socio = $id; $TbEmpresaSocio->dt_entrada = $param['socio_dt_entrada']; $TbEmpresaSocio->dt_saida = $param['socio_dt_saida']; $TbEmpresaSocio->nr_quotas = $param['socio_nr_quotas']; $TbEmpresaSocio->store(); } TTransaction::close(); }

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (4)


NR

Form dentro de form não é sintaxe válida do html(https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/form) . Pode ser algo relacionado a isso.
MG

Você pode criar abas, dividir a página com panels, notebook, mas todos os campos devem estar dentro de um único form.
RS

Olá bom pessoal,

muito obrigado pelo retorno, sempre rápido e eficiente.

Consegui resolver ontem, porém esqueci de compartilhar pois estava bem tarde,

Mudar a ordem de adição dos elementos era a solução.

Ficou exatamente como eu precisava, Bootstrap"FormPAI" com varias Abas(Pages) e dentro de cada "Aba" um Bootstrap"SubFormFILHO" completo contendo até mesmo Actions e datagrids.

Por favor se com sua experiencia notarem algo que poderá causar problema me avisem.

Vou reduzir o codigo e simplificar os nomes pra ficar facil o entendimento caso alguem precise futuramente:

"Não funcionava" estava criando $subform adicionando a ele os fields e ao final adicionada o $subform ao $this->form:
  1. <?php
  2.             $subform = new BootstrapFormBuilder;
  3.             
  4.             $subform->addFields([new TLabel('Sócio'), $socio_id]);
  5.             
  6.             $this->form->addContent([$subform]);
  7. ?>


"Solução" apos criar o $subform adicionei ele ao $this->form e então adicionei os fields ao $subform:
  1. <?php
  2.             $subform = new BootstrapFormBuilder;
  3.             
  4.             $this->form->addContent([$subform]);  
  5.             $subform->addFields([new TLabel('Sócio'), $socio_id]);            
  6. ?>

RS

Prezados, só um comentário,

Eu venho de 11 anos de delphi, se em algum momento eu passar informação errônea me corrijam e me perdoem,
"acredito que ninguém é provido de todo conhecimento ou desprovido de conhecimento algum"

Conheci esse framework em 2018, reescrevi com ele um sistema completo meu em 30 dias, desde então só tenho trabalhado com ele e estou muito feliz.