如何为具有现有值的select标记选择set option value

时间:2016-05-28 14:16:00

标签: php html codeigniter

$output数组返回选项对我打印为<?php print_r($store);?>的select标记进行了修改,当我尝试更新此表单时,我需要将store显示为所选值,并选择list必须具有与$output之前相同的其他现有值。

型号:

public function getStore() {
        $this->db->select('*');
        $store = $this->db->get('tbl_store_info');
        $data = $store->result();

        $output = array();
        $output[]='<option value="" disabled selected>Select Store</option>';
        foreach ($data as $row) {
            $output[]= '<option value="' . $row->store_id . '">' . $row->store . '</option>';
        }
        return $output;
    }

控制器:

public function editEmployee($id='') {
        $empData=  $this->CommonModel->getEmployee_by_ID($id);
        $data['emp_list'] = $empData[0];

        $data['store']=  $this->CommonModel->getStore();
        $data['user_role']=  $this->CommonModel->getUserRole();
        $data['msg']=  $this->session->flashdata('usermsg');

        $this->load->view('common/topnav');
        $this->load->view('common/sidebar');
        $this->load->view('common/header');
        $this->load->view('common/title-header');
        $this->load->view('employee/editEmployee',$data);
        $this->load->view('common/footer');
    }

查看:

<div class="form-group col-sm-5">
 <label for="store">Store:</label>
  <select class="form-control" id="store" name="store" required>
    <option value="<?php echo $emp_list->store_id; ?>" selected><?php echo $emp_list->store; ?></option>
    <?php print_r($store);?>
  </select>
</div>

我只想将此<option value="<?php echo $emp_list->store_id; ?>" selected><?php echo $emp_list->store; ?></option>作为选定值。

1 个答案:

答案 0 :(得分:0)

由于您在模型中构建HTML(这通常是一种不好的做法),因此您无法根据ID进行查看。

我只想重写整个事情,在View而不是模型中输出HTML。

但是如果你正在寻找一个快速解决方案,只需将控制器中的$ id发送到模型中,并在foreach中包含以下内容:

foreach ($data as $row) {
  $option_selected = '';
  if ($row->store_id == $id) {
    $option_selected = 'selected';
  }
  $option_str = "<option value='$row->store_id' $option_selected>$row->store</option>";
}