如何将 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()[复制]

Laravel 4 - 将ID值添加到下拉列表中

Power Query:当特定值出现在另一列中时如何将一个添加到列中

如何将字符串迭代器值添加到 ArrayAdapter?

将自动增量 ID 添加到现有的升序列?