验证失败后,codeigniter自动完成选择值

时间:2017-01-07 14:54:35

标签: php codeigniter dropdown

在codeigniter中

如何在表单

中验证失败后显示先前选择的选项值

控制器

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>

在验证失败后发布数据后,它会丢失并且不显示先前选择的值。

1 个答案:

答案 0 :(得分:0)

假设您使用set_value()set_select()恢复了$state_id,然后才在getStateOption()中使用,则应尝试if($state_id != 0)而不是if(!empty($state_id))。我认为$state_id永远不会是空的......

无论如何,在我看来,最好直接在form重新填充VIEW