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