【发布时间】:2022-03-03 23:44:44
【问题描述】:
我遇到了一些问题。这是一个简短的解释。
我在一个标准表单上有 12 个复选框。我需要做的是遍历它们中的每一个并了解哪些被选中,哪些未被选中。
使用它,我可以构建一个字符串,然后将其输入到数据库字段中。这是一个例子。
(检查1 - 已检查)
(检查 2 - 未检查)
(检查3 - 已检查)
1,0,1
到目前为止,我已经得到了这段代码。
$('input[type=checkbox]').each(function () {
if (this.checked) {
console.log($(this).val());
}
});
它工作得很好,只是它只带回选中的,而不是全部。
【问题讨论】:
-
你应该重新设计你的数据库架构。
-
如何重新设计?将一组复选框存储在一个字段中不是比每个复选框都有一个字段更好吗?
-
这显然取决于复选框是什么,但您可能应该使用单个字段或子表(每个 [选中] 复选框每行一个字段)
-
“在一个字段中存储一组复选框不是比每个复选框都有一个字段更好吗?” 不,因为您的 1 和 0 不会被存储作为位,它们存储为字节。如果您在一个字段中存储逗号分隔值位列表的原因是为了提高效率,那么请丢失逗号并改用 按位和掩码 操作。虽然,最近 mysql 已经实现了 bit 数据类型,所以 bitwise 和 mask 可能不是必需的,除非你正在对信用卡芯片进行编程或者你需要非常快的东西。