php - 从 Web 表单上的 50 多个复选框获取输入

标签 php javascript html

将我正在处理的表格视为一种调查。它有 50 多种可能的条件都可以检查 - 或一个。就像我需要能够将结果发布到 MySQL 数据库的任何表单一样。我正在尝试寻找从所有这些复选框获取输入的最佳方法,而不必为每个复选框创建单独的列(除非这被认为是最佳实践)。

这就是我认为可行的方法。从 1-N 以数字方式分配复选框名称。然后遍历每个复选框检查它的状态。然后,不要为每个复选框创建一列 - 使用一列并为每个复选框连接某种标识符。

伪代码

For checkbox in N:
    check state of N:
        if N is checked:
            concatenated string += idenifier(N)

这个方法好不好,或者您还有其他建议吗?

最佳答案

这可能是最糟糕的做法。您提出的解决方案有很多问题 - 但与其尝试用母 pig 的耳朵制作丝绸钱包....

在关系数据库中唯一明智的做法是将每个复选框的结果存储在表中它自己的行中。所以你可能有这样的东西:

response {
   id auto_increment-,
   user_id references data elsewhere,
   ...
   primary key (id)
}

answers {
   response_id references response.id,
   checkbox_id references available_checkboxes.id,
   value_selected,
   primary key(response_id, check_box id)
}

然后你还可以描述复选框代表什么:

available_checkboxes {
    id auto_increment;
    option_text varchar(40);
}

并构建不同的问卷....自定义数据收集....等等

关于php - 从 Web 表单上的 50 多个复选框获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7333714/

相关文章:

php - 当我使用带有常量值的 bindParam 时,为什么出现 Cannot pass parameter 2 by reference 错误?

php - php脚本中最佳的MYSQL查询数是多少?

javascript - 查看源码中添加Js不起作用

javascript - 基于类 div 的 Jquery 自动编号,但在指定的 div 上重置计数器

javascript - Knockoutjs 在尝试创建一系列无序列表时抛出异常

php - 检查 in_array 值

php - preg_match 用户名验证正则表达式允许 > 和 < 尽管这些字符未列入白名单

javascript - Polymer 1.0 尝试制作一种类似于核心 split 器的 split 器,可以称为铁 split 器

javascript - 如何在 Chrome 扩展的内容脚本中导入 ES6 模块

javascript - 单击 'div' 内的 'div' 执行两个 div 的事件处理程序