我有一个带有类别下拉列表的表单。
它看起来像这样:
<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保存到数据库而不是所选值的数量?
答案 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发生之前进行提交,然后发布选项标签而不是值。