我正在尝试使用表格中的数据填充选择输入/表单下拉列表。
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);
答案 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:与表的列中一样)。