型号:
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);
?>
然而,有一个大问题,而所有选择选项的"名称"都是相同的。此下拉列表中的所有选项都具有与(room_type)表的列名相同的值:rt_name。我尝试了几种方法,但仍然无法为下拉列表中选项的名称字段分配唯一值
因为它们都来自同一列。。
array(
array('column_name'=>'value1'),
array('column_name'=>'value2'),
array('column_name'=>'value3'),
array('column_name'=>'value4')
)
试试这个(控制器):-
$list=array();
foreach($room_type as $type )
{
array_push($list, $type['column_name']);
}
$this->load->view('/main/new_reservation', array('list'=>$list));
并且在视图中:-
<?php
//$js = 'name='$room_type'';
echo form_dropdown('room_type', $list);
?>
现在你有这样的下拉列表:-
<select name="room_type">
<option value="0">value1</option>
<option value="1">value2</option>
<option value="2">value3</option>
<option value="3">value4</option>
</select>
您应该构造一个数组,其中键是选项的value
属性,值是选项的description
。
如文档中所述,使用这样的数组:
$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);
将生成如下所示的选择元素:
<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
在数组中,键总是相同的(列名),您需要对它们进行区分,以实现您想要的。
可能在模型中,您还必须选择房间的id…
这是一个示例数组,它使下拉列表中的选项看起来像这个
$options = array(
"" => "Select",
"1" => "Test",
"2" => "Testing",
);
echo form_dropdown('name_of_selectbox', $options);
它会像一样显示
<select name="name_of_selectbox">
<option value="">Select</option>
<option value="1">Test</option>
<option value="2">Testing</option>
</select>
其他方式你可以做它像这个
$room_typearray=array();
$room_typearray[]="Select";
foreach($room_type as $room){
$room_typearray[$room['rt_name']]=$room['rt_name'];
}
echo form_dropdown('room_type', $room_typearray);
这是你的评论的回复
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);
}
您必须在$data['room_type']
中加载结果并将其传递给视图。首先尝试var_dump($room_type);
,查看其中是否有数据。当您使用任何未定义的变量时,会发生未定义的错误。
希望这是有意义的