繁体   English   中英

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

[英]CodeIgniter: Populating a select input/ form dropdown with database table data

我试图用表中的数据填充选择输入/表单下拉列表。

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

但我收到此错误:

错误

遇到PHP错误

严重程度:注意

消息:未定义的变量:data_room_type

文件名:controllers / reservations.php

行号:8

第8行是:

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

返回$ query-> result_array(); 这行将为您填充多行。(如果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,否则您需要更改模型返回的返回数据。

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

您有语法错误意味着您做错了什么。 而且我可以看到您在模型中编写了错误的功能拼写。

这是您编写的fucntion ,应该具有function因此可以在那里更改并享受它。

fucntion get_room_details($data_room_type) {

错字function应该是

function get_room_details($data_room_type) {

$data_room_type[] = $row 缺少分号

应该是$data_room_type[] = $row;

您可以在Model中执行以下操作: function get_room_details($data_room_type = array()) {在Controller中: $this->reservations_model->get_room_details();

这几乎起作用了:

模型:

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:与表的列中相同)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM