2016-05-05 2 views
0

В принципе у меня есть 3 формы. У меня есть одно действие в моей форме, и я хочу создать 3 шага с помощью сеанса. Я хочу, когда я нажму следующую кнопку, он будет проверять форму1, если это удастся, то перенаправляет на form2 .. как мудрый для form3, но сохранит все данные в сеансе, а на третьем шаге действие запускается и добавляет все данные в базу данных.
Мне нужно только проверить условия сеанса до того, как моя вставка будет запущена в моей дополнительной программе. Plz помогите мне сделать это.сеанс многоуровневой формы cakephp

Мой главный вопрос заключается в том, чтобы получить все почтовые данные в одной переменной сеанса и проверить шаг за шагом перед тем вставкой ..

я изучаю в CakePHP и я не достаточно представления о сессии. Если вы эксперт, то plz сделайте это.

public function addjob($id = NULL) { 
    $this->layout = "layout_registration_old";   
    $this->loadcategory(); 
    $this->loadcargo(); 
    //$this->loadsubcategory(); 
    $this->getCountries(); 
    $this->getstates(); 
    if ($this->request->is('put') || $this->request->is('post')) {   
     if (isset($id)) { 
      $this->Job->id = $id; 
     } else { 
      $this->request->data['Job']['status'] = 1; 
      $this->request->data['Job']['job_type'] = 1; //this is used to update the job type private or public. 
      $this->Job->create(); 
     } 
     $this->Job->set($this->request->data); 
     if ($this->Job->AddEdit()) { // ADDEdit is the validation name in model    
      if ($this->Job->save($this->request->data['Job'], false)) { 
       if (isset($id)) { 
       $this->Session->setFlash(__('Job has been updated sucessfully.')); 

       } else { 
       $this->Session->setFlash(__('Job has been added succesfully.')); 

       } 
       $this->redirect(array('controller' => 'jobs', 'action' => 'index')); 
      } 
     } else { 
      $errors = $this->Job->validationErrors; 

      $this->Session->setFlash(__('Please check your entry.'), 'flash_error'); 
     } 
    } 
    if (isset($id)) { 
     $this->request->data = $this->Job->find('first', array('conditions' => array('id' => base64_decode($id)))); 
    } 

} 

форма - 1

<?php echo $this->Form->create('Job', array('url' => array('controller' => 'jobs', 'action' => 'addjob')));?> 

    <?php echo $this->Form->input('customer_name',array('div' => false, 'label' => false));?> 
     <?php echo $this->Form->input('customer_no',array('div' => false, 'label' => false));?> 
     <?php echo $this->Form->input('customer_email',array('div' => false, 'label' => false));?> 
     <?php 
        echo $this->Form->input('transport_type', array(
         'type' => 'select', 
         'label' => false, 
        'class' => 'select', 
         'options' => array(
          1 => 'Road' 
        ),     

       )); 
       ?> 
<?php echo $this->Form->submit('Save', array('class' => "navigation_button btn btn-primary btn-sm", 'div' => false)); ?> 
     <?php echo $this->Form->end(); ?> 

форма - 2

<?php echo $this->Form->create('Job', array('url' => array('controller' => 'jobs', 'action' => 'addjob')));?> 

<?php echo $this->Form->input('fname',array('div' => false, 'label' => false));?> 
    <?php echo $this->Form->input('lname',array('div' => false, 'label' => false));?> 
    <?php echo $this->Form->input('email',array('div' => false, 'label' => false));?> 
    <?php echo $this->Form->submit('Save', array('class' => "navigation_button btn btn-primary btn-sm", 'div' => false)); ?> 
    <?php echo $this->Form->end(); ?> 

форма - 3

<?php echo $this->Form->create('Job', array('url' => array('controller' => 'jobs', 'action' => 'addjob')));?> 

    <?php echo $this->Form->input('shop',array('div' => false, 'label' => false));?> 
     <?php echo $this->Form->input('business',array('div' => false, 'label' => false));?> 
     <?php echo $this->Form->input('status',array('div' => false, 'label' => false));?> 
<?php echo $this->Form->submit('Save', array('class' => "navigation_button btn btn-primary btn-sm", 'div' => false)); ?> 
     <?php echo $this->Form->end(); ?> 

ответ

0

Вместо сохранения данных из первых двух форм в сеансе, вы должны реализовать форму с несколькими частями, используя любое javascript-решение (Мастер форм). Подтвердите данные каждого шага с помощью javascript или через ajax (если нужно сделать динамически), прежде чем перейти к следующему шагу, и отправьте форму в конце, чтобы вам не приходилось играть с сеансами.

Example link

PS - Это может пойти в качестве комментария к вопросу, но я не получил достаточно репутации, чтобы получить возможность отправлять комментарии пока :(

Смежные вопросы