如何在codeigniter中重用表单以进行更新和添加

时间:2016-03-01 05:43:33

标签: codeigniter reusability

您好我想在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()?>

我的问题在于form_validation类的set_value()方法,因为如果更新,它将与填充表单冲突。

1 个答案:

答案 0 :(得分: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);?>