2016-04-05 1 views
0

Просмотрвозвращает входное значение, когда форма проверки бежит ложные

<div class="box-body"> 
    <div class="form-group"> 
     <label for="FNAME" class="col-sm-2 control-label col-sm-offset-2"> <span>*</span>First Name:</label> 
     <div class="col-sm-5"> 
      <input type="text" class="form-control" id="FNAME" name="FNAME"> 
     </div> 
    </div> 
    <div class="form-group has-error col-sm-offset-7"> 
     <label class="control-label" for="error"><?php echo form_error("FNAME"); ?></label> 
    </div> 
</div> 

Контроллер

public function create_id() { 

    $this->form_validation->set_rules('FNAME', 'First Name'   ,'trim|required|max_length[30]'); 
    $this->form_validation->set_rules('MNAME', 'Middle Name'   ,'trim|max_length[30]'); 
    $this->form_validation->set_rules('SURNAME', 'Last Name'    ,'trim|required|max_length[30]'); 

    if($this->form_validation->run($this) == FALSE) { 
     $this->add_view(); 
    } else { 
     if($query = $this->Employees_Model->insert()) { 
      $this->autoid(); 
      redirect('Employees/index'); 
     } else { 
      $this->add_view(); 
     } 
    } 
} 

То, что я хочу if($this->form_validation->run($this) == FALSE){, как вы видите, он будет перенаправлять обратно зрения. $this->add_view(); все, что я хочу, это когда он перенаправляет обратно, данные, которые я вводил, будут оставаться. так что я не буду вводить его снова, когда проверка не удалась.

+0

Это может помочь вам https://ellislab.com/ CodeIgniter/пользователь руководство/библиотеки/form_validation .html # repopulatingform – urfusion

ответ

1

В соответствии с CodeIgniter документации, вам необходимо изменить свой вид файла немного, в средствах, печатая эти значения входных элементов с <?= set_value("FNAME"); ?> на входе element _value_ parameter. Так что ваши

<input type="text" class="form-control" id="FNAME" name="FNAME"> 

станет

<input type="text" class="form-control" id="FNAME" name="FNAME" value="<?= set_value("FNAME"); ?>"> 

и так далее. Таким образом вы скажете CodeIgniter, чтобы повторно заполнить форму после ошибки.

+0

Работает ли он над выпадающими списками? –

+0

Да, но вам нужно немного логичнее, потому что вам нужно проверить, какие **

0

Вы можете использовать функцию set_value.

посмотреть файл

<input type="text" class="form-control" id="FNAME" name="FNAME" value="<?php echo set_value('FNAME'); ?>"> 
0


Получить размещенную значение, как этот

public function create_id() { 

    $this->form_validation->set_rules('FNAME',  'First Name'   ,'trim|required|max_length[30]'); 
    $this->form_validation->set_rules('MNAME',  'Middle Name'   ,'trim|max_length[30]'); 
    $this->form_validation->set_rules('SURNAME', 'Last Name'    ,'trim|required|max_length[30]'); 

    $data = array(
     'FNAME' => $this->input->post('FNAME'), 
     'MNAME' => $this->input->post('MNAME'), 
     'SURNAME' => $this->input->post('SURNAME') 
    ); 

    if($this->form_validation->run($this) == FALSE) { 
     $this->add_view($data); 
    } else { 
     if($query = $this->Employees_Model->insert()) { 
      $this->autoid(); 
      redirect('Employees/index'); 

     } else { 
      $this->add_view(); 
     } 
    } 
} 

В функции

function add_view($data){ 
    ............................. 
    ............................. 
    $this->data['values'] = $data; 
    ............................. 
    ............................. 

} 

Тогда

<div class="box-body"> 
     <div class="form-group"> 
     <label for="FNAME" class="col-sm-2 control-label col-sm-offset-2"><span>*</span>First Name:</label> 
      <div class="col-sm-5"> 
      <input type="text" class="form-control" id="FNAME" name="FNAME" value="<?= $values['FNAME'] ?>"> 
      </div> 
     </div> 
     <div class="form-group has-error col-sm-offset-7"> 
     <label class="control-label" for="error"><?php echo form_error("FNAME"); ?></label> 
     </div> 
    </div> 
+0

Я получил сообщение: 'Undefined variable: data' on' $ this-> add_view ($ данных); ' –

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