php - POST选中和未选中复选框状态(PHP)
问题描述
我的一个网站包含一张表格。此表的信息来自数据库。假设每个位置的 ID 和一个表示复选框的布尔值,它从数据库中加载 0 或 1 并“预先”选中或取消选中复选框。
<input class='cb' name='check[]' value='".$buyedposition."' type='checkbox' "; ?> <?php if($buyedposition==1){echo "checked";} ?> <?php echo ">";
$buyedposition是数据库中的 0 或 1 信息。
现在,用户可以通过单击表中显示的每条记录来更改复选框。表格也是一种形式。使用提交按钮,新值应该 POST 到下一个 php 文件以更新记录。但它不起作用。
只有选中的复选框会通过,数组大小=选中的复选框的数量。我已经尝试过隐藏输入,但数组大小不正确。对于 4 个空复选框,数组大小为 4。如果我选中所有 4 个,则数组大小为 8。
数组的 var_dump(所有 4 个复选框都被选中):
array(8) { [0]=> string(0) "" [1]=> string(1) "0" [2]=> string(0) "" [3]=> string(1) "0" [4]=> string(0) "" [5]=> string(1) "0" [6]=> string(0) "" [7]=> string(1) "0" }
使用“isset”也不起作用。(!isset($_POST["check"]) 当没有选中所有复选框时为真。我不能用它来问“好的,复选框 1 和 3,你选中了吗?”我只能用它来更新所有复选框如果用户未选中所有框,则为 0:
if(!isset($_POST["check"])){
foreach($_POST["positionID"] as $key=>$value){
$sql = $connection->prepare("UPDATE positionen SET buyed=? WHERE positionen.id = ?");
$sql->bind_param("ii", $checktozero, $_POST["positionID"][$key]);
$sql->execute();
}
那么有没有办法解决这个问题呢?