将我正在处理的表格视为一种调查。它有 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/