如何将form_dropdown id值添加到数据库? - codeigniter

时间:2013-04-26 13:32:56

标签: mysql forms codeigniter variables dropdownbox

我有一个带有类别下拉列表的表单。

它看起来像这样:

<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保存到数据库而不是所选值的数量?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

有一些解决方案。

当您调用form_dropdown时,codeigniter会根据key =&gt; value数组执行下拉列表。

所以关键将是你的选择价值,价值将成为你的选择标签。

您可以执行两项操作,将“$ opties”格式化为预期格式,或者在javascript发生之前进行提交,然后发布选项标签而不是值。