![](/img/trans.png)
[英]display data from database to dropdown with join table in codeigniter
[英]CodeIgniter: Creating a dropdown field from an array, populated from database table data column
模型:
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);
並查看其中是否有數據使用了未定義的任何變量時會發生錯誤
希望有道理
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.