2016-03-01 2 views
0

Здравствуйте, я хочу повторно использовать форму в codeigniter, но проблема в том, что форма обновления заполняется на странице, на которую загружена страница. Вот пример формы.Как повторно использовать форму в codeigniter для обновления и добавить

<?php 
    $attributes = array('class' => 'form-horizontal', 'id' => 'addPersonnel'); 
    echo form_open($form_submission, $attributes); 
    ?> 
     <input type="text" name="name" value="<?php echo set_value('name')?"> > 
     <input type="text" name="rank" value="<?php echo set_value('rank')?"> > 
     <button type="submit" class="btn btn-primary">Save</button>             
    <?php echo form_close()?> 

Моя проблема здесь заключается в методе set_value() класса form_validation, так как он будет иметь конфликт с заполнения формы, если обновления.

ответ

1

В функции обновления контроллера добавить условие, например:

if ($this->input->server('REQUEST_METHOD') === 'POST') { 
    $this->_get_userinfo_form_fields(); 
} else { 
    $this->_get_userinfo_form_fields($user_data); //$user_data from database 
} 

Для функции добавления вы можете сразу позвонить - $this->_get_userinfo_form_fields();

Затем объявить функцию, как показано ниже:

protected function _get_userinfo_form_fields($user_data = array()) { 
    $this->data['rank'] = array(
     'placeholder' => 'Rank', 
     'name'  => 'rank', 
     'id'   => 'rank', 
     'class'  => '', 
     'value'  => isset($user_data['rank']) ? $user_data['rank'] :set_value('rank',$this->input->post('rank',TRUE)), 
     'style'  => '', 
    ); 

    //Add rest of the fields here like the above one 
} 

В связи файл добавить код как:

<?php echo form_input($rank);?> 
Смежные вопросы