如何在编辑模式下获取选定的选项值(codeigniter)

时间:2018-12-01 05:58:12

标签: forms codeigniter html-select

我有带选项的表格,当我要编辑它时,值像创建函数一样返回。我想问的是如何获得在编辑功能中选择的值?

这是我的模特

  //get data by id
public function get_data($id = FALSE){
    if($id === FALSE){
    $query = $this->db->get('forms');
    return $query->result_array();
    }

    $query = $this->db->get_where('forms', array('id' => $id));
    return $query->row_array();
}

我的控制器

// get form by id
   public function get_data_id($id = NULL){


    $data['title'] = 'Update Data';

    $data['statuses'] = $this->status_model->get_status();        
    $data['form'] = $this->form_model->get_data($id);       

    if(empty($data['form'])){
        show_404();
    }

    $this->load->view('globals/header');
    $this->load->view('globals/navigation');
    $this->load->view('forms/edit_data', $data);
    $this->load->view('globals/footer'); 

}

我的修改视图

<?= form_open('forms/updating_data')?>
    <input type="hidden" name="id" value="<?= $form['id']?>" >
        <div class="form-group">
            <label for="name">Name</label>
            <input type="text" class="form-control" name="name" value="<?= $form['name']?>">        
        </div>           
        <div class="form-group">
            <label for="stat">Status</label>
            <select class="form-control" name="stat">
                <?php foreach($statuses as $stat):?>
                    <option value="<?= $stat['status']?>"><?= $stat['status']?></option>
                <?php endforeach; ?>
            </select>
        </div>
        <button class="btn btn-primary btn-sm" type="submit">Update</button>
        </form>

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您需要确保要编辑的数据($form数组)也包含status

然后您需要在选择框中添加一个if语句,该语句将所选值设置为status数组中的$form,如下所示:

<select class="form-control" name="stat">
    <?php foreach($statuses as $stat):?>
        <option value="<?= $stat['status']?>"
            <?php if ($stat['status'] == $form['status']) : ?> selected<?php endif; ?>
        >
            <?= $stat['status']?>
        </option>
    <?php endforeach; ?>
</select>