如何将 form_dropdown id 值添加到数据库? - 代码点火器
Posted
技术标签:
【中文标题】如何将 form_dropdown id 值添加到数据库? - 代码点火器【英文标题】:How to add form_dropdown id value to database? - codeigniter 【发布时间】:2013-04-20 16:58:47 【问题描述】:我有一个带有类别下拉列表的表单。
看起来像这样:
<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');
它将所选下拉列表的值存储为 int。
就是这样
select:
option1 (gives value 1, because of first option)
option2 (gives value 2, because it's the second option in de dropdown)
etc
如何将categoryid保存到数据库而不是选择值的编号?
【问题讨论】:
【参考方案1】:您需要为要添加到 $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>
【讨论】:
但我希望用户可以选择一个类别,而不是 categoryid。但我想将 id 添加到数据库而不是 categoryname$ddmenu[$tablerow['idcategorieen']] = $tablerow['name of the field that has the category name here'];
关键是
. 之间的标签
我在另一个项目中使用了这个答案,谢谢!【参考方案2】:
对此有一些解决方案。
当您调用 form_dropdown 时,codeigniter 会根据 key=>value 数组进行下拉。
所以 key 将成为您的选项值,而 value 将成为您的选项标签。
您可以做 2 件事,将“$opties”格式化为预期格式,或者在使用 javascript 之前提交,然后发布选项标签而不是值。
【讨论】:
我不想用javascript来做这么简单的功能。以上是关于如何将 form_dropdown id 值添加到数据库? - 代码点火器的主要内容,如果未能解决你的问题,请参考以下文章
在codeigniter中将form_dropdown数据插入mysql数据库
什么错,调用控制器上的未定义函数form_dropdown()[复制]