Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Preciso salvar todos do uma unica vez, qual é o procedimento ...
JP
Preciso salvar todos do uma unica vez, qual é o procedimento  
  1. <?php
  2. class FormularioDeInscricao extends TPage
  3. {
  4.     private $form;
  5.     
  6.     /**
  7.      * Class constructor
  8.      * Creates the page
  9.      */
  10.     public function __construct()
  11.     {
  12.         parent::__construct();
  13.         $this->form = new BootstrapFormBuilder('form_builder');
  14.         $this->form->setFormTitle(_t('Formulário de Inscrição'));
  15.         $this->form->setFieldSizes('100%');
  16.         
  17.         $this->form->appendPage('Dados Pessoais');
  18.         
  19.       
  20.         
  21.         //Campos do Formulário aluno
  22.         $cod_aluno  = new TEntry('cod_aluno');
  23.         $nome_aluno   = new TEntry('nome_aluno');
  24.         $data_nascimento   = new TDate('data_nascimento');
  25.         $nome_pai  = new TEntry('nome_pai');
  26.         $nome_mae = new TEntry('nome_mae');
  27.         $endereco    = new TEntry('endereco');
  28.         $telefone = new TEntry('telefone');
  29.         $email  = new TEntry('email');
  30.         
  31.         
  32.         //Campos do formulario Sexo
  33.           $cod_sexo = new TDBCombo('cod_sexo''sge''TbSexo''cod_sexo''sexo');
  34.  
  35.         //Campos de curso
  36.         $cod_curso = new TDBCombo('cod_curso''sge''TbCursos''cod_curso''curso');
  37.         
  38.         
  39.         //Campos do formulario Identidade
  40.        $numero_BI = new TEntry('cod_Identidade');
  41.        $local_Emissao_BI  = new TDate('local_emissao'); 
  42.        $data_validade_BI  = new TDate('data_validade_BI');      
  43.     
  44.         //Campos do Formulário Estado Civil
  45.         $cod_EstadoCivil  = new TDBCombo('cod_EstadoCivil''sge''TbEstadocivil''cod_EstadoCivil''EstadoCivil'); 
  46.        
  47.         //Campos da tabela Provincia
  48.         $provincia = new TDBCombo('provincia''sge''TbProvincias''cod_provincia''provincia');
  49.        
  50.         //Campos da tabela Escola
  51.         $nome_escola  = new TEntry('nome_escola');
  52.         $curso = new TEntry('curso');
  53.         $media_final = new TEntry('media_final');
  54.         
  55.       //Campo da tabela Periodo
  56.       $periodo  = new TDBCombo('periodo''sge''TbPeriodo''periodo''periodo');
  57.       
  58.       //Campo da tabela Nacionalidade
  59.       $nacionalidade  = new TDBCombo('nacionalidade''sge''TbNacionalidade''nacionalidade''nacionalidade');
  60.       
  61.        //Dados Proffionais
  62.          $funcao  = new TEntry('funcao');
  63.         $nome_empresa = new TEntry('nome_empresa');        
  64.         
  65.         
  66.         //Validação de campos
  67.                  
  68.        $telefone->setMask('99.999-999'true);
  69.       // $data_nascimento->setMask('dd/mm/yyyy');
  70.        $telefone->setMask('(+244)999-999-999 / (+244)999-999-999');
  71.       $data_nascimento->setDatabaseMask('dd-mm-yyyy');
  72.       $media_final->setMask('99.999-999'true);
  73.        
  74.         //Primeira linha de campo
  75.         $row $this->form->addFields( [ new TLabel('Nome do Candidato''#FF0000'13''), $nome_aluno ],
  76.                                        [ new TLabel('Data de Nascimento''#FF0000'13''), $data_nascimento ],
  77.                                        [ new TLabel('Sexo''#FF0000'13''),  $cod_sexo ],
  78.                                        [ new TLabel('Estado Civil''#FF0000'13''), $cod_EstadoCivil] );
  79.                                        
  80.          $row->layout = ['col-sm-7''col-sm-3''col-sm-3','col-sm-3' ];
  81.         
  82.         //Segunda linha de campo
  83.         $label2 = new TLabel('Curso a se inscrever''#5A73DB'16'');
  84.         $label2->style='text-align:left;border-bottom:2px solid #c0c0c0;width:100%';
  85.         $this->form->addContent( [$label2] );
  86.         
  87.         $row $this->form->addFields( [ new TLabel('Curso''#FF0000'13''), $cod_curso ],
  88.                                        [ new TLabel('Periodo''#FF0000'13''), $periodo ]);
  89.                                        
  90.         $row->layout = ['col-sm-6''col-sm-4' ];
  91.         
  92.          //Terceira linha de campo
  93.         $label3 = new TLabel('Sua Identidade''#5A73DB'16'');
  94.         $label3->style='text-align:left;border-bottom:2px solid #c0c0c0;width:100%';
  95.         $this->form->addContent( [$label3] );
  96.         
  97.         $row $this->form->addFields( [ new TLabel('Número do B.I''#FF0000'13''),  $numero_BI ],
  98.                                        [ new TLabel('Emitido em''#FF0000'13''),  $local_Emissao_BI ],
  99.                                        [ new TLabel('Válido até''#FF0000'13''), $data_validade_BI] ,
  100.                                        [ new TLabel('Nacionalidade''#FF0000'13''), $nacionalidade] ,
  101.                                        [ new TLabel('Naturalidade''#FF0000'13''), $provincia] );
  102.                                        
  103.         $row->layout = ['col-sm-5''col-sm-3''col-sm-3''col-sm-4','col-sm-5' ];
  104.         
  105.          //Quarta  linha de campo
  106.         $label4 = new TLabel('Agregado Familiar''#5A73DB'16'');
  107.         $label4->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  108.         $this->form->addContent( [$label4] );
  109.         
  110.         $row $this->form->addFields( [ new TLabel('Nome do Pai''#FF0000'13''),  $nome_pai ],
  111.                                        [ new TLabel('Nome da Mãe''#FF0000'13''),  $nome_mae ]);
  112.         $row->layout = ['col-sm-6''col-sm-6' ];
  113.         
  114.         //Quinta  linha de campo
  115.         $label5 = new TLabel('Contactos e Email''#5A73DB'16'');
  116.         $label5->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  117.         $this->form->addContent( [$label5] );
  118.         
  119.         $row $this->form->addFields( [ new TLabel('Endereço''#FF0000'13''), $endereco ],
  120.                                        [ new TLabel('Contactos:''#FF0000'13''),  $telefone ],
  121.                                          [ new TLabel('Email''#FF0000'13''),  $email ]);
  122.         $row->layout = ['col-sm-6''col-sm-5','col-sm-5' ];
  123.         
  124.          //Sexta  linha de campo
  125.         $label6 = new TLabel('Escola de Proveniência''#5A73DB'16'');
  126.         $label6->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  127.         $this->form->addContent( [$label6] );
  128.         
  129.         $row $this->form->addFields( [ new TLabel('Nome da Escola''#FF0000'13''), $nome_escola ],
  130.                                        [ new TLabel('Curso''#FF0000'13''),  $curso ],
  131.                                          [ new TLabel('Media Final''#FF0000'13''),  $media_final ]);
  132.         $row->layout = ['col-sm-6''col-sm-6','col-sm-2' ];
  133.         
  134.         
  135.         
  136.          //Setima  linha de campo
  137.         $label7 = new TLabel('Dados Profissionais''#5A73DB'16'');
  138.         $label7->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  139.         $this->form->addContent( [$label7] );
  140.         
  141.         $row $this->form->addFields( [ new TLabel('Função ou Categória''#FF0000'13''), $funcao ],
  142.                                        [ new TLabel('Nome da Empresa ''#FF0000'13''),  $nome_empresa ]);
  143.         $row->layout = ['col-sm-6''col-sm-6','col-sm-2' ];
  144.         
  145.         
  146.         
  147.         public function onSave$param )
  148.     {
  149.         try
  150.         {
  151.             TTransaction::open('bd_gestao_escolar'); // Abre a conexão do banco de dados
  152.             $this->form->validate(); // valida os dados no formulario
  153.             
  154.             $object = new Test;  // cria um objecto vasio
  155.             $data $this->form->getData(); //  Salva os dados em forma de arrey
  156.             $object->fromArray( (array) $data); // Carrega os objectos com  seus dados
  157.             $object->store(); // save the object
  158.             
  159.             //  Pega o id gerado
  160.             $data->id $object->id;
  161.             
  162.             $this->form->setData($data); //Preencha o Formulário com dados
  163.             
  164.             $this->fireEvents$object );
  165.             
  166.             TTransaction::close(); // Fecha a conexão da BD
  167.             
  168.             new TMessage('info'TAdiantiCoreTranslator::translate('Record saved')); //retorna a sms Salvado
  169.         }
  170.         catch (Exception $e// Em caso de Excepções
  171.         {
  172.             new TMessage('error'$e->getMessage()); // shows the exception error message
  173.             $this->form->setData$this->form->getData() ); // keep form data
  174.             TTransaction::rollback(); // undo all pending operations
  175.         }
  176.     }
  177.     
  178.     /**
  179.      Evento Fire Form
  180.      * @param $param Request
  181.      */
  182.     public function fireEvents$object )
  183.     {
  184.         $obj = new stdClass;
  185.         $obj->state_id    $object->state_id;
  186.         $obj->city_id     $object->city_id;
  187.         $obj->customer_id $object->customer_id;
  188.         TForm::sendData('form_hierarchical'$obj);
  189.     }
  190.     
  191.     /**
  192.      * Load object to form data Carrega os objectos para os dados do formulário
  193.      * Tipo de Parametro $param Request
  194.      */
  195.     public function onEdit$param //Ao Editar
  196.     {
  197.         try
  198.         {
  199.             if (isset($param['key']))
  200.             {
  201.                 $key $param['key'];  //  obtenha o id do parametro
  202.                 TTransaction::open('samples'); // open a transaction
  203.                 $object = new Test($key); // instantiates the Active Record
  204.                 $this->form->setData($object); // fill the form
  205.                 TTransaction::close(); // close the transaction
  206.                 
  207.                 $this->fireEvents$object );
  208.             }
  209.             else
  210.             {
  211.                 $this->form->clear();
  212.             }
  213.         }
  214.         catch (Exception $e// in case of exception
  215.         {
  216.             new TMessage('error'$e->getMessage()); // shows the exception error message
  217.             TTransaction::rollback(); // undo all pending operations
  218.         }
  219.     }
  220.     
  221.         
  222.         
  223.         
  224.       
  225.         
  226.         //Outra aba de Formulario
  227.         $this->form->appendPage('Outra Página');
  228.         $row $this->form->addFields( [ new TLabel('Test1'), $t1 = new TEntry('test1') ],
  229.                                        [ new TLabel('Test2'), $t2 = new TEntry('test2') ] );
  230.         $row->layout = ['col-sm-4''col-sm-8' ];
  231.         
  232.         $row $this->form->addFields( [ new TLabel('Test3'), $text = new TText('text') ] );
  233.         $row->layout = ['col-sm-12' ];
  234.         
  235.         
  236.         $this->form->addAction('Send', new TAction(array($this'onSend')), 'fa:check-circle-o green');
  237.         
  238.         // wrap the page content using vertical box
  239.         $vbox = new TVBox;
  240.         $vbox->style 'width: 100%';
  241.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  242.         $vbox->add($this->form);
  243.         parent::add($vbox);
  244.     }
  245.     
  246.     /**
  247.      * Post data
  248.      */
  249.     public function onSend($param)
  250.     {
  251.         $data $this->form->getData();
  252.         $this->form->setData($data);
  253.         
  254.         echo '<pre>';
  255.         print_r($data);
  256.         echo '</pre>';
  257.     }
  258. }
  259. ?>

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 (1)


NR

Detalhe mais a sua necessidade, não dá pra entender o que você quer/precisa fazer.