【问题标题】:How to add form_dropdown id value to database? - codeigniter如何将 form_dropdown id 值添加到数据库? - 代码点火器
【发布时间】: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保存到数据库而不是选择值的编号?

【问题讨论】:

    标签: mysql forms codeigniter variables dropdownbox


    【解决方案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来做这么简单的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多