如何在表单
中验证失败后显示先前选择的选项值控制器
protected function getStateOption($state_id=0) {
$stateOptions = '<option value="0">--Select State--</option>';
$stateList = $this->state_model->getState();
foreach ($stateList as $state) {
if(!empty($state_id)){
$stateOptions .= '<option value="' . $state->id . '" '.(($state_id && $state_id==$state->id) ? ' selected' : '').'> ' . $state->name. ' </option>';
}else{
$stateOptions .= '<option value="'.$state->id.'">'.$state->name.'</option>';
}
}
return $stateOptions;
}
视图
<div id="state_div" class="view span3">
<select id="state" name="state" >
<?php echo $stateOptionsList; ?>
</select>
<span style="color:red;"><?php echo form_error('state')?></span>
</div>
在验证失败后发布数据后,它会丢失并且不显示先前选择的值。
答案 0 :(得分:0)
假设您使用set_value()
或set_select()
恢复了$state_id
,然后才在getStateOption()
中使用,则应尝试if($state_id != 0)
而不是if(!empty($state_id))
。我认为$state_id
永远不会是空的......
无论如何,在我看来,最好直接在form
重新填充VIEW
。