保存并加载复选框已检查状态到数据库

时间:2016-03-17 13:26:20

标签: javascript php jquery mysql

我有一个"设置"我的网站中的页面,我希望用户能够在设置页面中选中或取消选中复选框。复选框'然后应该在用户登录时加载状态。

我的想法是为每个复选框分配ID,如下所示:

 <input type="checkbox" id="chk1" data-col='column1' value="0"/>
 <input type="checkbox" id="chk2" data-col='column2' value="0"/>

然后使用jQuery在&#34; SAVE SETTINGS&#34;上设置已检查函数的每个值。按钮:

$( "input:checkbox" ).each(function() {
   if $(this).prop('checked'){
    $(this).prop('value','1')
     }
});

然后在我的MySql表中为每个复选框添加一列,然后通过ajax / php将值(1或0)发送到我的数据库。

然后当用户登录时,我可以获取每列的值(1或0),然后根据该值,我可以设置检查状态。

这是一个很好的方法吗?如果有更简单的解决方案或方法,我想确保我不会走错路。

2 个答案:

答案 0 :(得分:-1)

假设$ query_array是数据库查询的容器。由于你在帖子的标签中包含了php,你可以在输入中插入一个php标签(假设文件也是php):

<input type="checkbox" id="chk1" data-col='column1' value="<?php echo $query[0][col_name];?>"/>

^上面的0可能是一个id,col_name是包含0/1的列名

编译时,它应该类似于:

<input type="checkbox" id="chk1" data-col='column1' value="0"/>

答案 1 :(得分:-1)

除了使用jquery之外,为什么不用渲染已经设置了值的复选框:

<input type="checkbox" id="chk1" data-col='column1' value="<?php echo $chk1?>" <?php echo $checked?>/>

修改

如果你想保留它只有HTML,你可以将状态存储在JSON中(其中属性名称是chekbox的id及其值的状态)并循环显示为:

$.each(jsonChkbxValues, function(index, val) {
    var elem = $('#' + index);

    elem.prop('value', val);
    if (val) {
        elem.attr('checked', 'checked');
    }
});