javascript - 保存并读取数据库中的复选框值,更改标签的状态

标签 javascript php jquery html

我必须使用复选框作为首选项,因此我将其保存在 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>

最佳答案

  1. 首先改变这个,先更新代码然后选择

    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
    
  2. 从 javascript 中删除 Urlcheck 和已检查的函数

  3. 在标签中添加此代码而不是标签 1

    echo ($dbox == 1 ? 'Abled' : 'Disabled');
    

关于javascript - 保存并读取数据库中的复选框值,更改标签的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218838/

相关文章:

javascript - 如何通过其偏移量查找 DOM 元素 ID/值

php - 如何从 JavaScript 函数调用 PHP 类方法

javascript - 在 Angular2 中使用 getter 和 setter 的目的是什么?

php - 将标签包裹在某些单词周围

c# - ASP.net 按钮 onserverclick 仅在未定义 onclick 时有效

javascript - 获取 "TypeError: $(...).css(...) is undefined"尽管使用 if 语句过滤掉所有未定义

javascript - 如何读取未提交给 git 的配置文件

javascript - <图片> src(事件源)

php - 如何将 HTML 集成到 WordPress Woocommerce 单一产品页面

php - "if lt IE 9"相当于 PHP?