保持复选框选中,刷新并提交后
Posted
技术标签:
【中文标题】保持复选框选中,刷新并提交后【英文标题】:Keep checkbox checked, after refresh and submit 【发布时间】:2016-05-08 02:56:23 【问题描述】:我试图保持选中一个复选框,但是在我刷新页面后,如果选中该复选框,数据库将更新为“是”,但数据库会自动将其更新为“否”,即使复选框是与local.store核实,我希望有人可以帮助我。这是我的代码。
<form action="" method="POST">
<label for="option1">Waarschuwingsbericht inschakelen voordat het volgende pack wordt geopend als jou pack boven de 200.000 waard is?</label><input id='option1' type="checkbox" name="checkbox" value="yes"><br>
<input type="submit" value="Opslaan en nog een pack openen">
</form>
<?
if(isset($_POST['checkbox']))
$sql = "UPDATE users SET puntenchecked = 'yes' WHERE username = '" . $usernamez . "'";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
else
$sql = "UPDATE users SET puntenchecked = 'no' WHERE username = '" . $usernamez . "'";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
?>
<script>
$(function()
var test = localStorage.input === 'true'? true: false;
$('input').prop('checked', test || false);
);
$('input').on('change', function()
localStorage.input = $(this).is(':checked');
console.log($(this).is(':checked'));
);
</script>
【问题讨论】:
你不需要这个$('input').prop('checked', test || false);
。这应该足够了$('input').prop('checked', test);
使用 checked
属性到 <input type="checkbox">
基于 $_POST['checkbox']
请求设置。看到这里stack answer已经做到了。
【参考方案1】:
试试这个:
<input id='option1' type="checkbox" name="checkbox" value="yes" <?php echo (isset($_POST['checkbox']))? "checked='checked'": "";?> >
【讨论】:
【参考方案2】:替换下面的JS逻辑:
<script>
$(function()
var test = localStorage.input === 'true'? true: false;
$('input').prop('checked', test);
);
$('input').on('change', function()
localStorage.input = $(this).is(':checked');
console.log($(this).is(':checked'));
);
</script>
查看更多here。
【讨论】:
以上是关于保持复选框选中,刷新并提交后的主要内容,如果未能解决你的问题,请参考以下文章