JP
Preciso salvar todos do uma unica vez, qual é o procedimento
- <?php
- class FormularioDeInscricao extends TPage
- {
- private $form;
- /**
- * Class constructor
- * Creates the page
- */
- public function __construct()
- {
- parent::__construct();
- $this->form = new BootstrapFormBuilder('form_builder');
- $this->form->setFormTitle(_t('Formulário de Inscrição'));
- $this->form->setFieldSizes('100%');
- $this->form->appendPage('Dados Pessoais');
- //Campos do Formulário aluno
- $cod_aluno = new TEntry('cod_aluno');
- $nome_aluno = new TEntry('nome_aluno');
- $data_nascimento = new TDate('data_nascimento');
- $nome_pai = new TEntry('nome_pai');
- $nome_mae = new TEntry('nome_mae');
- $endereco = new TEntry('endereco');
- $telefone = new TEntry('telefone');
- $email = new TEntry('email');
- //Campos do formulario Sexo
- $cod_sexo = new TDBCombo('cod_sexo', 'sge', 'TbSexo', 'cod_sexo', 'sexo');
- //Campos de curso
- $cod_curso = new TDBCombo('cod_curso', 'sge', 'TbCursos', 'cod_curso', 'curso');
- //Campos do formulario Identidade
- $numero_BI = new TEntry('cod_Identidade');
- $local_Emissao_BI = new TDate('local_emissao');
- $data_validade_BI = new TDate('data_validade_BI');
- //Campos do Formulário Estado Civil
- $cod_EstadoCivil = new TDBCombo('cod_EstadoCivil', 'sge', 'TbEstadocivil', 'cod_EstadoCivil', 'EstadoCivil');
- //Campos da tabela Provincia
- $provincia = new TDBCombo('provincia', 'sge', 'TbProvincias', 'cod_provincia', 'provincia');
- //Campos da tabela Escola
- $nome_escola = new TEntry('nome_escola');
- $curso = new TEntry('curso');
- $media_final = new TEntry('media_final');
- //Campo da tabela Periodo
- $periodo = new TDBCombo('periodo', 'sge', 'TbPeriodo', 'periodo', 'periodo');
- //Campo da tabela Nacionalidade
- $nacionalidade = new TDBCombo('nacionalidade', 'sge', 'TbNacionalidade', 'nacionalidade', 'nacionalidade');
- //Dados Proffionais
- $funcao = new TEntry('funcao');
- $nome_empresa = new TEntry('nome_empresa');
- //Validação de campos
- $telefone->setMask('99.999-999', true);
- // $data_nascimento->setMask('dd/mm/yyyy');
- $telefone->setMask('(+244)999-999-999 / (+244)999-999-999');
- $data_nascimento->setDatabaseMask('dd-mm-yyyy');
- $media_final->setMask('99.999-999', true);
- //Primeira linha de campo
- $row = $this->form->addFields( [ new TLabel('Nome do Candidato', '#FF0000', 13, ''), $nome_aluno ],
- [ new TLabel('Data de Nascimento', '#FF0000', 13, ''), $data_nascimento ],
- [ new TLabel('Sexo', '#FF0000', 13, ''), $cod_sexo ],
- [ new TLabel('Estado Civil', '#FF0000', 13, ''), $cod_EstadoCivil] );
- $row->layout = ['col-sm-7', 'col-sm-3', 'col-sm-3','col-sm-3' ];
- //Segunda linha de campo
- $label2 = new TLabel('Curso a se inscrever', '#5A73DB', 16, '');
- $label2->style='text-align:left;border-bottom:2px solid #c0c0c0;width:100%';
- $this->form->addContent( [$label2] );
- $row = $this->form->addFields( [ new TLabel('Curso', '#FF0000', 13, ''), $cod_curso ],
- [ new TLabel('Periodo', '#FF0000', 13, ''), $periodo ]);
- $row->layout = ['col-sm-6', 'col-sm-4' ];
- //Terceira linha de campo
- $label3 = new TLabel('Sua Identidade', '#5A73DB', 16, '');
- $label3->style='text-align:left;border-bottom:2px solid #c0c0c0;width:100%';
- $this->form->addContent( [$label3] );
- $row = $this->form->addFields( [ new TLabel('Número do B.I', '#FF0000', 13, ''), $numero_BI ],
- [ new TLabel('Emitido em', '#FF0000', 13, ''), $local_Emissao_BI ],
- [ new TLabel('Válido até', '#FF0000', 13, ''), $data_validade_BI] ,
- [ new TLabel('Nacionalidade', '#FF0000', 13, ''), $nacionalidade] ,
- [ new TLabel('Naturalidade', '#FF0000', 13, ''), $provincia] );
- $row->layout = ['col-sm-5', 'col-sm-3', 'col-sm-3', 'col-sm-4','col-sm-5' ];
- //Quarta linha de campo
- $label4 = new TLabel('Agregado Familiar', '#5A73DB', 16, '');
- $label4->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
- $this->form->addContent( [$label4] );
- $row = $this->form->addFields( [ new TLabel('Nome do Pai', '#FF0000', 13, ''), $nome_pai ],
- [ new TLabel('Nome da Mãe', '#FF0000', 13, ''), $nome_mae ]);
- $row->layout = ['col-sm-6', 'col-sm-6' ];
- //Quinta linha de campo
- $label5 = new TLabel('Contactos e Email', '#5A73DB', 16, '');
- $label5->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
- $this->form->addContent( [$label5] );
- $row = $this->form->addFields( [ new TLabel('Endereço', '#FF0000', 13, ''), $endereco ],
- [ new TLabel('Contactos:', '#FF0000', 13, ''), $telefone ],
- [ new TLabel('Email', '#FF0000', 13, ''), $email ]);
- $row->layout = ['col-sm-6', 'col-sm-5','col-sm-5' ];
- //Sexta linha de campo
- $label6 = new TLabel('Escola de Proveniência', '#5A73DB', 16, '');
- $label6->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
- $this->form->addContent( [$label6] );
- $row = $this->form->addFields( [ new TLabel('Nome da Escola', '#FF0000', 13, ''), $nome_escola ],
- [ new TLabel('Curso', '#FF0000', 13, ''), $curso ],
- [ new TLabel('Media Final', '#FF0000', 13, ''), $media_final ]);
- $row->layout = ['col-sm-6', 'col-sm-6','col-sm-2' ];
- //Setima linha de campo
- $label7 = new TLabel('Dados Profissionais', '#5A73DB', 16, '');
- $label7->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
- $this->form->addContent( [$label7] );
- $row = $this->form->addFields( [ new TLabel('Função ou Categória', '#FF0000', 13, ''), $funcao ],
- [ new TLabel('Nome da Empresa ', '#FF0000', 13, ''), $nome_empresa ]);
- $row->layout = ['col-sm-6', 'col-sm-6','col-sm-2' ];
- public function onSave( $param )
- {
- try
- {
- TTransaction::open('bd_gestao_escolar'); // Abre a conexão do banco de dados
- $this->form->validate(); // valida os dados no formulario
- $object = new Test; // cria um objecto vasio
- $data = $this->form->getData(); // Salva os dados em forma de arrey
- $object->fromArray( (array) $data); // Carrega os objectos com seus dados
- $object->store(); // save the object
- // Pega o id gerado
- $data->id = $object->id;
- $this->form->setData($data); //Preencha o Formulário com dados
- $this->fireEvents( $object );
- TTransaction::close(); // Fecha a conexão da BD
- new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); //retorna a sms Salvado
- }
- catch (Exception $e) // Em caso de Excepções
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- $this->form->setData( $this->form->getData() ); // keep form data
- TTransaction::rollback(); // undo all pending operations
- }
- }
- /**
- Evento Fire Form
- * @param $param Request
- */
- public function fireEvents( $object )
- {
- $obj = new stdClass;
- $obj->state_id = $object->state_id;
- $obj->city_id = $object->city_id;
- $obj->customer_id = $object->customer_id;
- TForm::sendData('form_hierarchical', $obj);
- }
- /**
- * Load object to form data Carrega os objectos para os dados do formulário
- * Tipo de Parametro $param Request
- */
- public function onEdit( $param ) //Ao Editar
- {
- try
- {
- if (isset($param['key']))
- {
- $key = $param['key']; // obtenha o id do parametro
- TTransaction::open('samples'); // open a transaction
- $object = new Test($key); // instantiates the Active Record
- $this->form->setData($object); // fill the form
- TTransaction::close(); // close the transaction
- $this->fireEvents( $object );
- }
- else
- {
- $this->form->clear();
- }
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- TTransaction::rollback(); // undo all pending operations
- }
- }
- //Outra aba de Formulario
- $this->form->appendPage('Outra Página');
- $row = $this->form->addFields( [ new TLabel('Test1'), $t1 = new TEntry('test1') ],
- [ new TLabel('Test2'), $t2 = new TEntry('test2') ] );
- $row->layout = ['col-sm-4', 'col-sm-8' ];
- $row = $this->form->addFields( [ new TLabel('Test3'), $text = new TText('text') ] );
- $row->layout = ['col-sm-12' ];
- $this->form->addAction('Send', new TAction(array($this, 'onSend')), 'fa:check-circle-o green');
- // wrap the page content using vertical box
- $vbox = new TVBox;
- $vbox->style = 'width: 100%';
- $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $vbox->add($this->form);
- parent::add($vbox);
- }
- /**
- * Post data
- */
- public function onSend($param)
- {
- $data = $this->form->getData();
- $this->form->setData($data);
- echo '<pre>';
- print_r($data);
- echo '</pre>';
- }
- }
- ?>
Detalhe mais a sua necessidade, não dá pra entender o que você quer/precisa fazer.