我想插入是否在MySQL中选择了复选框,只需在对应值的列中添加1或0即可。我对0s有问题,详细信息如下。
以下是复选框的示例
<input type='checkbox' name='class[]' value='mathhl' id="mathhl">
为了简单起见,我添加了这个
$classes = $_POST["class"];
下面是foreach循环,用于检查复选框的值。
foreach($classes as $value) {
if (!isset($value)) {
$value = 0;
}
else {
$value = 1;
}
echo $value;
}
出于某种原因,它只返回1,而不返回0!我是PHP的新手,所以我想知道我到底哪里出了问题,谢谢!
只有选中的复选框才会发送到服务器。因此,如果数组中不存在该值,那是因为没有选中该框。
您可以通过将值作为数组中的键来简化逻辑:
<input type='checkbox' name='class[mathhl]' value='1' id="mathhl">
现在,您不必在$_POST['class']
上循环。相反,您可以获取所有密钥的数组(您应该已经知道):
$keys = array( 'mathh1', 'mathh2', 'mathh3');
并用默认值(比如0)组成一个数组:
$defaults = array_combine( $keys, array_fill( 0, count( $keys), 0));
并将$_POST
数组与默认数组合并
$results = array_merge( $defaults, $_POST['class']);
现在,$results
将包含一个关联数组,键为列,值为1或0,具体取决于是否选中复选框。小心,因为有些人可以向$_POST
发布他们想要的数据,所以它可能不仅仅是1和0。