如果用户对该框进行了清理,我想在会话中存储一个复选框值。如果是这样,则在重新加载页面后也应检查该框。如果用户取消选中该框,则应销毁该会话并且必须取消选中该框。默认为未选中。
我尝试了不同的代码,但什么都行不通。在我的例子中,总是检查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>
答案 0 :(得分:0)
$refresh = "ok";
if(!empty($_POST['email']))
{
$refresh ="";
}
<input type="checkbox" class="custom-control-input" name="debug_on" id="debugbox" value="1" <?php if((isset($_SESSION['debug']) && $_SESSION['debug'] == true) || (!empty($refresh)) ) { echo "checked"; } ?> >
答案 1 :(得分:0)
我认为问题在于这一行: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"' : ''; ?>