php mysql复选框保存内部while循环
我有一个列表行的循环,我想做的是返回基本1或0 1检查,0取消选中列出的行。我在没有WHILE函数的情况下成功地做到了这一点,但在WHILE函数中它将无法工作php mysql复选框保存内部while循环,php,mysql,Php,Mysql,我有一个列表行的循环,我想做的是返回基本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
<?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>
您正在使用==设置变量的值。此运算符用于“相等”而不是“赋值”
从
$check_value == '1';
$check_value == '0';
进入
第二期
您正在使用==设置变量值的附近缺少>。此运算符用于“相等”而不是“赋值”
从
$check_value == '1';
$check_value == '0';
进入
第二期
附近有丢失的>试试这个,希望能奏效
if (isset($checked)) { ?> checked
<?php
} else { ""
}
?>'
注意:如果$checked变量中的值为0或1,则此选项将起作用
不需要其他工具:试试这个,希望能奏效
if (isset($checked)) { ?> checked
<?php
} else { ""
}
?>'
注意:如果$checked变量中的值为0或1,则此选项将起作用
无需elseif:如果未选中,则不会得到任何值,因此请检查post数据并编写代码以匹配行为,如果未选中,则可能会得到null或空值。如果未选中,则不会得到任何值,因此请检查post数据并编写代码以匹配行为,如果不选中,您可能会得到null或空值。我设法解决了我的问题:
<form name="update" method="POST" action="msa_pauze_admin.php" class="form-horizontal form-label-left">
<?php
if (!empty($_POST['Active'])) {
$interval_check = "UPDATE `msa_segmenti` SET `Active` = 0 ";
$mysqli->query($interval_check);
}
$interval = $conn->query("SELECT ID,Vrsta_segmenta, Active FROM `msa_segmenti`");
if ($interval->num_rows > 0) {
while ($row = $interval->fetch_array()) {
$id = $row["ID"];
if (isset($_POST['Active'][$id])) {
$interval_check = "UPDATE `msa_segmenti` SET `Active` = 1 WHERE `ID` = '" . $_POST['Active'][$id] . "'";
$mysqli->query($interval_check);
}
}
$interval = $conn->query("SELECT ID,Vrsta_segmenta, Active FROM `msa_segmenti`");
while ($row = $interval->fetch_array()) {
//print_r($row);
$checked = $row["Active"];
$id = $row["ID"];
//echo count($_POST['Active']);
//echo "<pre>"; print_r($_POST); exit;
?>
<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="Active[<?php echo $id; ?>]"
value="<?php echo $id; ?>"
class="js-switch" <?php echo ($checked == 1) ? 'checked' : ''; ?>>
</label>
</div>
</div>
</div>
<?php
}
}
?>
<button type="submit" class="btn btn-success" value="Save">Save</button>
</form>
我设法解决了我的问题:
<form name="update" method="POST" action="msa_pauze_admin.php" class="form-horizontal form-label-left">
<?php
if (!empty($_POST['Active'])) {
$interval_check = "UPDATE `msa_segmenti` SET `Active` = 0 ";
$mysqli->query($interval_check);
}
$interval = $conn->query("SELECT ID,Vrsta_segmenta, Active FROM `msa_segmenti`");
if ($interval->num_rows > 0) {
while ($row = $interval->fetch_array()) {
$id = $row["ID"];
if (isset($_POST['Active'][$id])) {
$interval_check = "UPDATE `msa_segmenti` SET `Active` = 1 WHERE `ID` = '" . $_POST['Active'][$id] . "'";
$mysqli->query($interval_check);
}
}
$interval = $conn->query("SELECT ID,Vrsta_segmenta, Active FROM `msa_segmenti`");
while ($row = $interval->fetch_array()) {
//print_r($row);
$checked = $row["Active"];
$id = $row["ID"];
//echo count($_POST['Active']);
//echo "<pre>"; print_r($_POST); exit;
?>
<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="Active[<?php echo $id; ?>]"
value="<?php echo $id; ?>"
class="js-switch" <?php echo ($checked == 1) ? 'checked' : ''; ?>>
</label>
</div>
</div>
</div>
<?php
}
}
?>
<button type="submit" class="btn btn-success" value="Save">Save</button>
</form>
查看HTML呈现的源代码。我可以从数据库中读取,但问题是当我需要保存更改的状态时。如果您未选中,您将不会得到任何值,因此请检查post数据并编写代码以匹配行为,如果未选中,您可能会得到null。@rtstorm:啊,好的,问题在于保存。您尝试保存最后一个复选框$\u POST['check']。将复选框名称更改为check[],则值将位于数组$\u POST['check']中。在保存脚本时加上change==into=。@panther:我在输入名中添加了[],change==to=但仍然没有保存:我注意到,如果我手动将数据库中的1设置为0,当我刷新页面时,它将更改为1。所以我认为这个剧本被称为“尊重ISSET”。我说的对吗?查看源代码中呈现的HTML。我可以从数据库中读取内容,但问题是当我需要保存更改的状态时,如果未选中,您将不会得到任何值,因此请检查post数据并编写代码以匹配行为,如果未选中,您可能会得到null。@rtstorm:啊,好的,问题在于保存。您尝试保存最后一个复选框$\u POST['check']。将复选框名称更改为check[],则值将位于数组$\u POST['check']中。在保存脚本时加上change==into=。@panther:我在输入名中添加了[],change==to=但仍然没有保存:我注意到,如果我手动将数据库中的1设置为0,当我刷新页面时,它将更改为1。所以我认为这个剧本被称为“尊重ISSET”。我说的对吗?这页是不是在什么地方?HTMLis中一定有错误。这个页面是否在某个地方?HTML中一定有错误