提交后保持复选框状态,并在首次页面加载时选中状态


Keeping checkbox state after submit with status checked on first page load

>我有这个带有复选框的html表单,这些复选框在提交表单并重新加载页面后保持选中或取消选中的状态:

<form method="post" action="">
<input type="checkbox" name="keyword1" value="keyword1" <?php if(isset($_POST['keyword1'])) echo "checked='checked'"; ?> />keyword1
<input type="checkbox" name="keyword2" value="keyword2" <?php if(isset($_POST['keyword2'])) echo "checked='checked'"; ?> />keyword2
<input type="checkbox" name="keyword2" value="keyword3" <?php if(isset($_POST['keyword2'])) echo "checked='checked'"; ?> />keyword3
<input type="submit"  />
</form>

问题是,在第一次页面加载时,复选框是未选中的。是否有可能在开始时选中所有状态的复选框,然后在提交后保留其新状态?到目前为止,我不知道该怎么做。任何帮助将不胜感激。谢谢

您可以使用 $_SESSION 而不是 $_POST :

<input type="checkbox" name="keyword1" value="keyword1" <?php if(isset($_SESSION['keyword1'])) echo "checked='checked'"; ?> />keyword1

然后将其放在文件的顶部:

session_start();
if (isset($_POST['my_form'])) {
    if (isset($_POST['keyword1'])) {
        $_SESSION['keyword1'] = 'checked';
    }
}