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

时间:2013-07-04 13:26:18

标签: php mysql codeigniter

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

HTML

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

型号:

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;
}

控制器:

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

但我收到了这个错误:

error

  

遇到PHP错误

     

严重性:注意

     

消息:未定义的变量:data_room_type

     

文件名:controllers / reservations.php

     

行号:8

第8行是

$this->reservations_model->get_room_details($data_room_type);

4 个答案:

答案 0 :(得分:5)

return $ query-&gt; 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>

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

可能会对你有所帮助。如果你遇到任何问题,请告诉我。

答案 1 :(得分:2)

你有语法错误意味着你犯了错误。而且我可以看到你在模型中写了错误的函数拼写。

你写的是fucntion,它应该是function所以改变它并享受。

答案 2 :(得分:2)

fucntion get_room_details($data_room_type) {

错字function它应该是

function get_room_details($data_room_type) {

$data_room_type[] = $row。缺少分号

应为$data_room_type[] = $row;

你可以这样做 在模型中:function get_room_details($data_room_type = array()) { 在控制器中:$this->reservations_model->get_room_details();

答案 3 :(得分:1)

这几乎奏效了:

<强>型号:

function pop_room_type() {
    $this->db->select('rt_name')->from('room_type');
    $query=$this->db->get();
    return $query->result_array();
}

<强>控制器:

function index() {
    $this->load->model('reservations_model');
    $data['room_type'] = $this->reservations_model->pop_room_type();
    //echo "<pre>";print_r($data['room_type']);echo"</pre>";
    $this->load->view('/main/new_reservation', $data);
}

查看:

<?php 
//$js = 'name='$room_type'';
echo form_dropdown('room_type', $room_type);
?>   
  

然而,有一个大问题,而所有选择的“名称”   选项是相同的(rt_name:与表的列中一样)。