【问题标题】:What is the best way to handle an "other" option in a select box?在选择框中处理“其他”选项的最佳方法是什么?
【发布时间】:2011-03-23 21:08:16
【问题描述】:

我需要实现一个具有“其他”选项的选择框。如果选择此选项,用户应该能够在文本字段中输入不同的选项。我关心的是如何实现保存到数据库中。我正在寻找独特而有效的方法来处理这个实现。

我相信我上次实现此功能时,我的表格中有两列,一列用于选择框,一列用于文本字段输入。

谁能想到更好的方法来做到这一点?

【问题讨论】:

  • 文本框值不能在同一列中的任何原因?似乎您可以让表单处理程序在特定条件下使用文本框值而不是选择框值。除非我错过了什么。
  • @Fareesh Vijayarangam 你说得对,在提交时我可以获取文本框值的值并将其存储在数据库中,但是当该用户再次编辑该字段时,选择框不会显示它,因为选择框选项是从另一个数据库表中提取的。
  • 在编辑方法的特定情况下,您可能会编写一些预先选择“其他”并使用数据库中的数据填充文本框的代码。我认为,当你使用两列时,你最终还是会按照这段代码的行编写一些东西。

标签: html option drop-down-menu


【解决方案1】:

我会有一个参考表,在您的选择框中填充以下字段:id、item、primary。其中 'primary' 是一个布尔值,指示它是否应包含在您的下拉列表中。

然后当用户输入其他项目时,这些项目将被添加到您的参考表中,其中 'primary' 字段为 false。

这个实现的好处是它在概念上很干净 - 只有一个字段存储您的项目值,如果您的许多用户正在为其他添加特定字段,您只需翻转 'primary' bool为 true,它将出现在您的主下拉列表中。

【讨论】:

    【解决方案2】:

    假设您有某种类型的元数据表来驱动您的选择框选项,您可以添加将新的“其他”选项插入该表的逻辑,然后在存储的主表中引用您新添加的项目的主键表格输入数据。

    如果您不想在每个“其他”提交时混淆元数据表,那么我相信您的方法很好 - 只是一个单独的可空列来存储“其他”值。

    【讨论】:

    • 我对这个答案很感兴趣。我想我会更多地探索它,看看它是否值得我的项目。用来自用户的更多信息来填充选择框选项是一个好方法,但是垃圾邮件条目呢?
    • 对,好吧.. 我确信有解决方案可以通过表单提交(和重复)来最大限度地减少垃圾邮件条目。谷歌周围。
    猜你喜欢
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    相关资源
    最近更新 更多