stay_live == '1') { echo "checked"; } ?> title="Click to Stay Live Every Day" /> <?php echo $employee->name; ?>
这是PHP:
if(isset($_POST['stay_live'])) {
$user=$_POST['user'];
$auto=$_POST['auto'];
if ($auto == 1) {
$sql = "UPDATE users SET stay_live = 0 WHERE id = '{$user}';";
}
if ($auto != 1) {
$sql = "UPDATE users SET stay_live = 1 WHERE id = '{$user}';";
}
mysqli_query($dbconnection, $sql);
}
?>
如果您在表单中看到onclick代码,它将自动提交表单并执行PHP POST.但是,仅当未选中复选框时,onclick才有效.如果选中它,屏幕会刷新,就像它做了一样,但POST从未提交.
总结一下;当未检查框并且需要设置时,一切都按预期工作.但是对于UNSET来说,从不调用服务器功能.谁能明白为什么?
注意:这是测试代码,所以请不要注意sql注入
解决方法:
未选中时,不会发送复选框值,因此未设置$_POST [“stay_live”].
if (isset($_POST["user"])) // type="hidden" will be sent regardless of checkbox
{
if (isset($_POST["stay_alive"])) echo "Checkbox checked";
else echo "Checkbox not checked";
}
?>
标签:php,javascript,forms,html
来源: https://codeday.me/bug/20190703/1368987.html