这是 HTML/JavaScript:
<form method = "post" style="display: inline;" name="thisform<?php echo $employee->id; ?>">
<input type="hidden" name="user" value="<?php echo $employee->id; ?>" />
<input type="hidden" name="auto" value="<?php echo $employee->stay_live; ?>" />
<h3><input type="checkbox" name="stay_live" onclick="document.forms.thisform<?php echo $employee->id; ?>.submit();" <?php if ($employee->stay_live == '1') { echo "checked"; } ?> title="Click to Stay Live Every Day" /> <?php echo $employee->name; ?>
</form>
这里是PHP
:
<?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
只有在checkbox
未选中时才有效。如果它被选中,屏幕会刷新,就好像它做了什么一样,但 POST 永远不会提交。
所以总结一下;当未选中该框并且需要对其进行设置时,一切都按预期工作。但是要取消它,永远不会调用服务器函数。谁能明白为什么?
注意:这是测试代码,所以请不要对sql注入进行评论