我必须使用复选框作为首选项,因此我将其保存在 mysql 数据库中以使其始终可用。当我选择复选框时,标签变为启用,反之亦然。当您保存(提交)时,页面会发送一条指示复选框状态的警告消息,并将新值保存在数据库中 0 = 禁用 1 = 启用并“重新加载”同一页面并读取新值。现在我遇到的问题是,在我可以从数据库中读取值之前,脚本会进行干预。只有当我第二次重新加载页面时,我才能获得正确的值。我插入了页面刷新,但没有解决问题。
-js-
<script>
function checked() {
if (document.getElementById("check1").checked){
$(check1).siblings('label').html('Abled');
alert("Abled Notify");
$.get("birthdaysend.php");
} else {
$(check1).siblings('label').html('Disabled');
alert("Disabled Notify");
}
}
// function change label checked
$('#check1').click(function() {
if ($(this).is(':checked')) {
$(this).siblings('label').html('Abled');
} else {
$(this).siblings('label').html('Disabled');
}
});
function urlCheck() {
if(window.location.href=="preference.php"){
//load page = read satus
checked();
}
}
urlCheck()
</script>
-插入数据库-
$dbox = "SELECT value FROM box WHERE id = '1'";
$dbox= $db->ExecuteScalar($dbox);
print_r($dbox);//temp
if (isset($_POST['check1']) && $_POST['check1'] == '1') {
Execute("UPDATE box SET value='1' WHERE id = '1'");
header("Refresh:0");
}else{
Execute("UPDATE box SET value='0' WHERE id = '1'");
//header("Refresh:0");
}
-HTML-
<form name="preference" action="preference.php" method="POST">
<div class="col-sm-4"><label class="container" for="check1">Tag 1</label><input type="checkbox" class="checkmark" name="check1" id="check1" value="1" <?php echo ($dbox == 1 ? 'checked' : '');?>></div>
<button style="float:left; margin-left: 0px;" type="submit" class="btn btn-primary"><i class="fa fa-floppy-o"></i> Save </button>
</form>
最佳答案
首先改变这个,先更新代码然后选择
if (isset($_POST['check1']) && $_POST['check1'] == '1') { Execute("UPDATE box SET value='1' WHERE id = '1'"); }else{ Execute("UPDATE box SET value='0' WHERE id = '1'"); } $dbox = "SELECT value FROM box WHERE id = '1'"; $dbox= $db->ExecuteScalar($dbox); print_r($dbox);//temp
从 javascript 中删除 Urlcheck 和已检查的函数
在标签中添加此代码而不是标签 1
echo ($dbox == 1 ? 'Abled' : 'Disabled');
关于javascript - 保存并读取数据库中的复选框值,更改标签的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218838/