我有这个列表行循环,我想做的是返回到列出的行的基数 1 或 0(1 个选中,0 个取消选中)。我设法在没有 WHILE 函数的情况下执行此操作,但在 while 函数中它不起作用。
<?php
$interval = $conn->query("SELECT ID,Vrsta_segmenta, Active FROM `msa_segmenti`");
if ($interval->num_rows > 0) {
while($row = $interval->fetch_array()) {
$checked = $row["Active"];
?>
<form name="update" method="POST" action="msa_pauze_admin.php" class="form-horizontal form-label-left">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12"><?php echo $row["Vrsta_segmenta"];?></label>
<div class="col-md-9 col-sm-9 col-xs-12">
<div class="">
<label>
<input type="checkbox" name="check" value="<?php echo $row["Active"];?>" class="js-switch"
<?php
if ($checked == '1') { ?> checked
<?php
} else if ($checked == '0') ""
?>
</label>
</div>
</div>
</div>
<?php }} ?>
<button type="submit" class="btn btn-success" value="Save">Save</button>
现在我需要在单击保存按钮时将值返回给数据库。 我知道我需要检查点击状态,所以我尝试了这个但没有成功:
if (isset($_POST["check"])) {
$check_value == '1';
$interval_check_save = "UPDATE `msa_segmenti` SET `Active` = '".$check_value."' WHERE `ID` = '".$id."'";
$mysqli->query($interval_check_save);
} else {
$check_value == '0';
$interval_check_save = "UPDATE `msa_segmenti` SET `Active` = '".$check_value."' WHERE `ID` = '".$id."'";
$mysqli->query($interval_check_save);
}
最佳答案
试试这个,希望这会成功
if (isset($checked)) { ?> checked
<?php
} else { ""
}
?>'
注意:如果您在 $checked 变量中有 0 或 1 个值,这将起作用 不需要 elseif :)
关于php mysql复选框在while循环中保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49528789/