2013-04-26 67 views
2

我有一個窗體的下拉類別。如何將form_dropdown id值添加到數據庫? - codeigniter

它看起來像這樣:

<tr> 
<td><?= form_label('Categorieen'); ?></td> 
<td><?= form_dropdown('categorieen', $opties); ?></td> 
</tr> 

$opties我用這個代碼:

$dbres = $this->db->get('categorieen'); 
    $ddmenu = array(); 
    foreach ($dbres->result_array() as $tablerow) { 
     $ddmenu[] = $tablerow['idcategorieen']; 
    } 
    $data['opties'] = $ddmenu; 

但是當我使用這個:

$this->input->post('categorieen'); 

它存儲的值選擇下拉爲一個整數。

所以這樣

select: 
option1 (gives value 1, because of first option) 
option2 (gives value 2, because it's the second option in de dropdown) 
etc 

如何將類別ID保存到數據庫中,而不是選擇的值是多少?

回答

2

您需要爲要添加到$ ddmenu的項目分配鍵;例如, $ddmenu[$tablerow['idcategorieen']] = $tablerow['idcategorieen'];將使值爲idcategorieen。

編輯澄清: 如果$ ddmenu看起來是這樣的:

array(
    1 => 'Books', 
    2 => 'Cats', 
    3 => 'Foo Bars' 
) 

下拉選項看起來像

<option value="1">Books</option> 
<option value="2">Cats</option> 
<option value="3">Foo Bars</option> 
+0

但我希望用戶可以選擇一個類別,而不是一個類別。但我想添加到數據庫的id而不是類別 – 2013-04-26 13:41:57

+0

'$ ddmenu [$ tablerow ['idcategorieen']] = $ tablerow ['在這裏有類別名稱的字段的名稱'];'關鍵是值爲之間的標籤。 – Samutz 2013-04-26 13:42:54

+0

會試試:) – 2013-04-26 13:44:06

0

對此有一些解決方案。

當您調用form_dropdown時,codeigniter會根據key => value數組執行下拉菜單。

所以關鍵是你的選擇價值,價值將成爲你的選擇標籤。

您可以做2件事,將您的「$ opties」設置爲預期的格式,或者在javascript發生之前進行提交,並將選項標籤改爲值。

+0

我不想使用JavaScript這樣一個簡單的功能。 – 2013-04-26 13:47:48