dongqian5639 2016-01-30 22:57
浏览 61

Codeigniter:无法在form_dropdown中使用set_value显示form_error以进行验证

I need to display the form_error with set_value in form_dropdown for validation and it didn't work for me.

Here's the model (model_home.php):

public function get_dropdown() {
        $result = $this->db->select('designation_id, designation')->get('designation')->result_array();
        $dropdown = array();
        foreach($result as $r) {
            $dropdown[$r['designation_id']] = $r['designation'];
        }

        return $dropdown;

    }

Here's the controller (home.php):

public function viewAddEmployeeForm() { 
        $this->load->model('Model_home');
        $data = array();
        $data['dropdown'] = $this->Model_home->get_dropdown();

        $this->load->view('imports/header');
        $this->load->view('imports/menu');

        $this->load->view('emp_add', $data);
    }

public function saveEmployee() {
        $this->load->model('Model_home');
        $data = array();
        $data['dropdown'] = $this->Model_home->get_dropdown();

        $rules = array(
            array('field'=>'emp_desig','label'=>'Designation','rules'=>'trim|required')
            );

        $this->form_validation->set_rules($rules);
        if($this->form_validation->run() == FALSE) {
            $this->load->view('emp_add', $data);
        } else {

        $this->load->model('Model_home');
        $p = new Model_home();
        $p->designation_id = $this->input->post('emp_desi');

        if($p->designation_id == 1) {
            $p->user_type = 0;
        } else {
            $p->user_type = 1;
        }

        $result = $p->saveEmployee();

        if (!$result) {
            echo mysqli_error($result);
        }
        else {
           redirect('home/goSettings', 'refresh');
        }

       }
    }

Here's the view (emp_add.php):

<?php echo form_open('home/saveEmployee',array('class'=>'form-horizontal'));?>
<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12">Designation <span class="required"><font size="3" color="red">*</font></span>
    </label>
    <div class="col-md-6 col-sm-6 col-xs-12">    
        <?php echo form_dropdown('emp_desi', $dropdown, '', 'class="form-control" id="emp_desi" name="emp_desig" value="<?php echo set_value('emp_desig') ?>"'); ?>   
        <span style="color: red;"><?php echo form_error('emp_desig'); ?></span>
    </div>
</div>
<div class="ln_solid"></div>
<div class="form-group">
    <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
        <button type="submit" class="btn btn-success" name="emp_submit" id="emp_submit">Submit</button>
    </div>
</div>
</form>

How will I display the form_error in form_dropdown especially for set_value? Thanks for your time.

  • 写回答

1条回答 默认 最新

  • drxm72811 2016-01-31 02:44
    关注

    Read the Form Helper doc. Your form_dropdown() was used incorrectly. You should pass in an array of options as the third parameter, rather than use set_value().

    评论

报告相同问题?

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂