如何在 html/php 站点中记住用户帐户中的复选框首选项
Posted
技术标签:
【中文标题】如何在 html/php 站点中记住用户帐户中的复选框首选项【英文标题】:How to remember checkbox preference in user account in html/php site 【发布时间】:2017-12-19 01:52:01 【问题描述】:美好的一天!
我正在做一个网站。有一个复选框可以更新我在 phpmyadmin 中选择的选项。
但是如果我按提交,然后按 f5/重新加载页面,我选择的首选项会在客户端/html 端消失,(查看图像以获得更好的理解)
Image, open me!
所以基本上我希望网站记住我在“用户帐户”中的选择 我试过了
<form action="pr.php" method="POST">
<h3 style="color:red;">Numbers?</h3>
<input type="checkbox" name="a1" value="1" <?php if(isset($_POST['a1'])) echo "checked='checked'"; ?> /><label>One</label><br/>
<input type="checkbox" name="a2" value="2" <?php if(isset($_POST['a2'])) echo "checked='checked'"; ?> /><label>Two</label><br/>
<input type="checkbox" name="a3" value="3" <?php if(isset($_POST['a3'])) echo "checked='checked'"; ?> /><label>3</label><br/>
<input type="checkbox" name="a4" value="4" <?php if(!is_null($_POST['a4'])) echo "checked='checked'"; ?> /><label>Four</label><br/>
<input type="submit" value="submit" name="submit">
它不适用于 isset、empty 或 is_null。
谢谢大家!
【问题讨论】:
But if I press f5/reload page
=> 表示没有提交数据。这就是数据消失的原因。如果您点击提交按钮并且您的操作是当前页面,那么您将使用给定的代码确定您的数据。
当您按下 f5 时,如果该页面中的 $_POST 数据可用,您应该会收到确认对话框窗口,在该窗口中您单击重新发送按钮 $_POST 值将保持在同一页面上,否则它将重置...如果您没有收到对话框,则您的网站中没有 $_POST 值。当您在提交表单后假设重定向您的网站时会发生这种情况
抱歉,已修复,我先按提交,然后按 f5,值不会保存在客户端 @AlivetoDie
【参考方案1】:
除非您将信息保存在数据库中,否则即使您点击了提交,在刷新网页后您也会丢失变量的值。
您可以使用 cookie 来保存选中的选项的值:
setcookie("checkbox1","checked");
第一个参数是cookie的name
,第二个是cookie的value
,你可以添加第三个参数time
你希望cookie在过期之前拥有。
在你的 if 条件下,你可以这样做:
<?php if($_COOKIE['a1'] == "checked") echo "checked='checked'"; >
更多信息,请查看this link。
【讨论】:
以上是关于如何在 html/php 站点中记住用户帐户中的复选框首选项的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net 4.5 中使用 facebook 帐户开发登录
如何以一种用户只能访问一个站点的方式在 Ubuntu 上配置虚拟主机 [关闭]