gpt4 book ai didi

javascript - 基于 PHP 条件在页面刷新时将复选框设置为 CHECKED

转载 作者:行者123 更新时间:2023-11-28 05:18:45 25 4
gpt4 key购买 nike

希望这不是重复的,所以请多多包涵。

我有一个表单,它是一系列复选框,在数据库中设置一个从 0 到 1 的 bool 值,然后在提交时,它采用这些值,更新数据库,然后刷新页面,所以如果值是设置为 0 复选框未选中,或者如果值为 1,则复选框被选中。所有这些都可以正常工作 - 我的这部分代码没有问题。

我的问题是,在我的提交按钮上方,我有一个全选/取消全选按钮,如果选择了所有按钮,在页面刷新时,该复选框将保持选中状态。但是在刷新时,该按钮未被选中,我必须单击它两次才能使复选框取消选中所有前面提到的复选框。

这是我的代码:

<form action="" method="post">
<?php
while( $row = mysql_fetch_array($result) ){
$id = $row['id'];
$active = $row['active'];
$name = $row['name'];
$class = $row['class'];

if($active == '1'){
**IF ANY OF THESE CHECKBOXES ARE ACTIVE, THEN THE SELECT/DESELECT ALL BUTTON SHOULD BE CHECKED -- WHAT IS THE PROPER SYNTAX???**
}


echo "<input type='hidden' name='activate_".$id."' value='0'>";
echo "<label class='switch'><input type='checkbox' class='checkbox' name='activate_".$id."' value='1'";

if($active == '1'){
echo "checked='checked'";

}

echo "/><div class='slider'></div><span>" . $name . "</span></label>";

}

mysql_close();
?>
<label for="select_all" class="selectAllLabel"><input type="checkbox" id="select_all"/> Activate/Deactivate All</label>
<input type="submit" class="submit" name="submit" value="Update Active Roster">
</form>
<iframe src="index.html" width="376" height="260" style="border: 0;"></iframe>

<?php

if(isset($_POST['submit'])){

require "config.php";

$conn = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

for ($i = 1; $i<count($_POST); $i++){
$sql = "UPDATE roster SET active = ".$_POST["activate_$i"]." WHERE id = ".$i;
if ($conn->query($sql) === TRUE) {
echo "";
} else {
echo $conn->error;
}
}

$conn->close();
echo "<meta http-equiv='refresh' content='0'>";

}

?>
<script>
$(document).ready(function(){
//select all checkboxes
$("#select_all").change(function(){ //"select all" change
var status = this.checked; // "select all" checked status
$('.checkbox').each(function(){ //iterate all listed checkbox items
this.checked = status; //change ".checkbox" checked status
});
});

$('.checkbox').change(function(){ //".checkbox" change
//uncheck "select all", if one of the listed checkbox item is unchecked
if(this.checked == false){ //if this item is unchecked
$("#select_all")[0].checked = false; //change "select all" checked status to false
}

//check "select all" if all checkbox items are checked
if ($('.checkbox:checked').length == $('.checkbox').length ){
$("#select_all")[0].checked = true; //change "select all" checked status to true
}
});
});
</script>

您可以从我的代码中准确地看出我希望触发“全选/取消全选”值的逻辑发生更改的位置。我只是不知道这样做的正确语法。

提前谢谢你。

最佳答案

"thank you @Fred-ii- can you post an answer so I can give you credit, please. – Murphy1976"

根据 OP 的要求。

php => http://php.net/manual/en/language.operators.comparison.php在“三元......”下;-)

即那里的例子:

$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

您可以用 isset() 替换它,它应该用于复选框/ radio 。

根据我从数据库中获取数据并选中/取消选中某些内容的个人经验,我发现使用三元运算符是最好的方法。

这有点棘手,但效果很好。

其他引用资料:

关于javascript - 基于 PHP 条件在页面刷新时将复选框设置为 CHECKED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41878559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com