我有一个复选框列表,想要在提交时返回它们的值。我可以轻松地为已检查的那个做这个,但不是未经检查的?到目前为止,这是我的代码:
将所有地址簿和现有用户地址簿以及输出作为复选框的代码:
foreach ($ch2_response as $ab) {
if ($ab['visibility'] == "Public") {
if (in_array($ab['name'], $userBooks)) { ?>
<div class="checkbox">
<label>
<input type="checkbox" checked="checked" name="addressBooks[]" value="<?php echo $ab['id']; ?>"><?php echo $ab['name']; ?>
</label>
</div>
<?php } else { ?>
<div class="checkbox">
<label>
<input type="checkbox" name="addressBooks[]" value="<?php echo $ab['id']; ?>"><?php echo $ab['name']; ?>
</label>
</div>
<?php }
}
}
`
用于检查用户新选择的代码:
<?php
if (isset($_POST['submit'])) {
address_books();
}
function address_books() {
$book = $_POST['addressBooks'];
if (!isset($book)) {
$N = count($book);
echo("You did not select $N book(s): ");
for ($i = 0; $i < $N; $i++) {
echo($book[$i] . " ");
}
} else {
$N = count($book);
echo("You selected $N book(s): ");
for ($i = 0; $i < $N; $i++) {
echo($book[$i] . " ");
}
}
}
答案 0 :(得分:0)
您无法获取未选中复选框的值。浏览器不会提交它们。
您可以在每个checkbox
之前添加一个具有相同名称的隐藏输入字段,并为其指定您想要的错误值。
<input type="hidden" name="addressBooks" value="0">
<input type="checkbox" name="addressBooks" value="1">
取消选中该复选框后,浏览器会将隐藏值提交给服务器