CodeIgniter:使用数据库表数据填充选择输入/表单下拉列表

Mad*_*ake 1 php mysql codeigniter

我正在尝试使用表中的数据填充选择输入/表单下拉列表.

HTML

<select id="room_type" name="inputInfo" >
    <option value="<?php echo set_value('room_type', '$data_room_type'); ?>"></option>
</select>
Run Code Online (Sandbox Code Playgroud)

模型:

function get_room_details($data_room_type) { // line 19
    $data_room_type = array();
    $this->db->select('room_type', 'default_price');
    $this->db->from('room_type');
    $query = $this->db->get();

    if ($query->num_rows() > 0) {
        foreach ($query->result_array() as $row) {
            $data_room_type[] = $row;
        }
    }
    return $data_room_type;
}
Run Code Online (Sandbox Code Playgroud)

控制器:

function index() {
    $this->load->view('/main/new_reservation');
    $this->load->model('reservations_model');
    $this->reservations_model->get_room_details($data_room_type);
}
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

错误

遇到PHP错误

严重性:注意

消息:未定义的变量:data_room_type

文件名:controllers/reservations.php

行号:8

第8行是::

$this->reservations_model->get_room_details($data_room_type);
Run Code Online (Sandbox Code Playgroud)

ABo*_*rty 5

return $ query-> result_array(); line会为你填充多行.(如果你在room_type表中有多个记录)

所以你需要在view.for普通的html中运行foreach循环

<select name="">
<?php
foreach($room_type as $each)
{
    ?>
    <option value="<?=$each['rt_name']?>"><?=$each['rt_name']?></option>
    <?php
}
?>
</select>
Run Code Online (Sandbox Code Playgroud)

使用普通的HTML,否则你需要更改模型返回的返回数据.

可能它会帮助你.如果你遇到任何问题,请告诉我.