如何在 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 上配置虚拟主机 [关闭]

Laravel Eloquent ORM 中的 join()->where()

如何记住登录 Google 帐户 Android

PHP和HTML如何加载新文件

关闭 UITableView 静态单元格中的复选标记