Php 在会话中存储表单中的复选框

Php 在会话中存储表单中的复选框,php,session,checkbox,Php,Session,Checkbox,如果用户选中复选框,我想在会话中存储复选框值。如果是这样,则在重新加载页面后也应选中该框。如果用户取消选中该框,则应销毁会话,并且必须取消选中该框。默认值是不受限制的 我尝试了不同的代码,但没有任何效果。在我的示例中,chekbox始终处于选中状态,即使用户是否选中了它 非常感谢你 我的php: session_start(); if( !empty($_POST['debug_on']) ) { $_SESSION['debug'] = true; } else { $_SE

如果用户选中复选框,我想在会话中存储复选框值。如果是这样,则在重新加载页面后也应选中该框。如果用户取消选中该框,则应销毁会话,并且必须取消选中该框。默认值是不受限制的

我尝试了不同的代码,但没有任何效果。在我的示例中,chekbox始终处于选中状态,即使用户是否选中了它

非常感谢你

我的php:

session_start();

if( !empty($_POST['debug_on']) ) {
    $_SESSION['debug'] = true;
} else {
    $_SESSION['debug'] = false;

}
我的表格:

<form class="form-inline" name="form" method="post" action="">
<div class="form-group">
<label class="sr-only" for="inlineFormInputGroup">Email</label>
  <div class="input-group mb-2 mr-sm-2 mb-sm-0">
    <div class="input-group-addon">@</div>
    <input type="email" name="email" class="form-control" id="inlineFormInputGroup" placeholder="name@mail.com" value="<?= $email ?>" required >
  </div>
</div>

<div id="debugbox">
<label class="custom-control custom-checkbox mb-2 mr-sm-2 mb-sm-0">
    <input type="checkbox" class="custom-control-input" name="debug_on" id="debugbox" value="1" <?php if($_SESSION['debug'] = true); echo "checked='checked'"; ?>>
    <span class="custom-control-indicator"></span>
    <span class="custom-control-description">Output debug</span>
  </label>
 </div>
<button type="submit" class="btn btn-outline-success">Submit</button>
<br>
<br>

</form>

电子邮件
@
$refresh=“确定”;
如果(!空($_POST['email']))
{
$refresh=“”;
} 
$refresh=“确定”;
如果(!空($_POST['email']))
{
$refresh=“”;
} 

我认为问题在于这一行:
echo“checked='checked'”
应该是
echo'checked='checked'
,但如果您愿意,我会提出一个完整的解决方案

试试这个:

session_start();
if(!empty($_POST['debug_on'])) {
    $_SESSION['debug'] = true;
} 
else {
    $_SESSION['debug'] = false;
}
然后在HTML中:

<?php print !empty($_SESSION['debug']) && $_SESSION['debug'] == true ? 'checked="checked"' : ''; ?>

我认为问题在于这一行:
echo“checked='checked'
应该是
echo'checked=”checked'
,但如果您愿意,我会提出一个完整的解决方案

试试这个:

session_start();
if(!empty($_POST['debug_on'])) {
    $_SESSION['debug'] = true;
} 
else {
    $_SESSION['debug'] = false;
}
然后在HTML中:

<?php print !empty($_SESSION['debug']) && $_SESSION['debug'] == true ? 'checked="checked"' : ''; ?>


谢谢,Subhash。到目前为止,它仍然可以工作,但在重新加载页面后,该框仍然没有被锁定。我想在刷新后存储复选框。谢谢!只需检查任意随机变量,并在使用post时将其设为空。并在同一行上勾选“空”现在该框始终处于选中状态,即使我取消勾选或不勾选也是如此。谢谢,Subhash。到目前为止,它仍然可以工作,但在重新加载页面后,该框仍然没有被锁定。我想在刷新后存储复选框。谢谢!只需检查任意随机变量,并在使用post时将其设为空。并选中同一行上的空现在该框始终处于选中状态,即使我在此处取消选中或不选中,在重新加载后,该复选框处于未选中状态:(@Ronny哦,这是因为我们在表单未发布时删除了会话!只要你不勾选复选框,它就会工作。如果你勾选了复选框,提交后取消勾选,它就会保持勾选状态。我认为取消勾选后cookie不是空的。你的意思是取消勾选后,你提交表单?对吗?我再次更新了我的答案o,现在可以了。the最后一件事:刷新页面后,如何将会话存储在cookie中以选中复选框?此处相同,重新加载后,复选框未选中:(@Ronny哦,这是因为我们在表单未发布时删除了会话!只要你不勾选复选框,它就会工作。如果你勾选了复选框,提交后取消勾选,它就会保持勾选状态。我认为取消勾选后cookie不是空的。你的意思是取消勾选后,你提交表单?对吗?我再次更新了我的答案o,现在可以了。the最后一件事:如何将会话存储在cookie中,以便在刷新页面后选中复选框?