AG
Problemas com getData() a formulário de input em datagrid
Olá a todos!
Escrevo para pedir a ajuda URGENTE de alguém que me explique uma situação que já não sei mais o que fazer para entender:
Tenho um form ('form_Cliente'), onde tenho o registro de cliente e logo abaixo uma datagrid com 2 campos de input anexados a outro form ('grid_form') e na linha da datagrid eu coloquei um botão para gravar o registo com os dados do cliente e também os dados da datagrid.
No caso é um registo de viagem, onde na datagrid eu escolho quantas pessoas (adultos e crianças) e faço o cálculo do total a pagar.
Acontece que se, depis de criar o botão 'Registar', eu escrever:
$this->form->setFields($botao_registar);
ao chegar ao método de destino, eu faço um
$this->form->getData() que mostra os campos PREENCHIDOS
um $this->grid_form->getData() que mostra apenas:
object(stdClass)#300 (0) { }
e um var_dump($param) que mostra o form_Cliente com os dados preenchidos.
PORÉM, se eu fizer
$this->grid_form->setFields($botao_registar);
o var dump do $this->form->getData() que mostra os campos VAZIOS
o var dump do $this->grid_data->getData() mostra o mesmo: object(stdClass)#300 (0) { }
e o var dump do $param mostra o os campos do form_Cliente também com os campos VAZIOS.
Resumindo,
em nenhuma hipótese eu consigo fazer getData() ao 'grid_form'
não percebo porque de uma forma o getData() ao 'form_Cliente' traz informação e da outra vem vazio
ME AJUDEM POR FAVOR!
Escrevo para pedir a ajuda URGENTE de alguém que me explique uma situação que já não sei mais o que fazer para entender:
Tenho um form ('form_Cliente'), onde tenho o registro de cliente e logo abaixo uma datagrid com 2 campos de input anexados a outro form ('grid_form') e na linha da datagrid eu coloquei um botão para gravar o registo com os dados do cliente e também os dados da datagrid.
No caso é um registo de viagem, onde na datagrid eu escolho quantas pessoas (adultos e crianças) e faço o cálculo do total a pagar.
Acontece que se, depis de criar o botão 'Registar', eu escrever:
$this->form->setFields($botao_registar);
ao chegar ao método de destino, eu faço um
$this->form->getData() que mostra os campos PREENCHIDOS
um $this->grid_form->getData() que mostra apenas:
object(stdClass)#300 (0) { }
e um var_dump($param) que mostra o form_Cliente com os dados preenchidos.
PORÉM, se eu fizer
$this->grid_form->setFields($botao_registar);
o var dump do $this->form->getData() que mostra os campos VAZIOS
o var dump do $this->grid_data->getData() mostra o mesmo: object(stdClass)#300 (0) { }
e o var dump do $param mostra o os campos do form_Cliente também com os campos VAZIOS.
Resumindo,
em nenhuma hipótese eu consigo fazer getData() ao 'grid_form'
não percebo porque de uma forma o getData() ao 'form_Cliente' traz informação e da outra vem vazio
ME AJUDEM POR FAVOR!
Como você tem 2 forms, um sempre virá vazio, pois o botão só envia os dados de 1 form por vez.
Sobre o fato de não conseguir fazer getData do grid_form, difícil dizer sem ver o código, mas você está registrando os campos no formulário(addField)?
De qualquer modo, sugiro pensar em uma forma de utilizar somente 1 formulário, vai ser mais fácil de trabalhar.
Oi Nataniel, muito obrigado pela sua resposta.
Como eu tinha urgência, acabei por optar por deixar de lado a datagrid (que só iria ter sempre uma linha mesmo) e optei por juntar tudo num form só e resolvi a questão.
Tem lógica o botão só enviar um form, mas o estranho era não conseguir o getData...
Eu fiz algo assim, (de acordo com o exemplo em adianti.com.br/framework_files/tutor/index.php?class=DatagridInputVi) :
De qualquer forma eu superei o problema.
Valeu, muito obrigado!
Abel