您好我想在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()方法,因为如果更新,它将与填充表单冲突。
答案 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);?>