【问题标题】:PHP: sticky checkbox with default state checkedPHP:选中默认状态的粘性复选框
【发布时间】:2012-09-16 22:15:18
【问题描述】:

我正在使用 PHP 仅显示 MySQL 表中的选定记录。有一个带有提交按钮的表单,因此用户可以优化他们的搜索(“仅显示 fieldX = valueY 的记录”...)

为了使表单具有粘性,我使用了以下代码:

<input type="checkbox" name="SBS" value="SBS" <?php if($_POST['SBS'] == 'SBS') echo'checked="checked" ' ?> />

唯一的问题是我需要检查默认值。我尝试添加

$_POST['SBS'] = 'SBS';

在最上面,但这显然是每次提交表单时设置变量,所以我不能关闭它!

谢谢

【问题讨论】:

  • 为了使表单具有粘性,我使用了以下代码:,嗯,我们在谈论复选框是吗?这是否意味着必须始终选中复选框并且用户不能取消选中它?换句话说,请在您的使用中定义 sticky 以及 howwhen 这个复选框应该被默认选中
  • 对不起,我应该更清楚。提交表单并重新加载页面时,复选框需要保留其值。它应该在初始页面加载时被选中。

标签: php sticky


【解决方案1】:

不要设置$_POST['SBS']。让表单的提交做到这一点。

如果您想默认勾选复选框,那么您可以使用$_SERVER['REQUEST_METHOD'] 来检测GETPOST

如果表单已经提交,这将使用$_POST,否则如果是GET,则默认为选中。

<input type="checkbox" name="SBS" value="SBS" <?php if (($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['SBS'] == 'SBS') || $_SERVER['REQUEST_METHOD'] == 'GET') echo'checked="checked" ' ?> />

您也可以使用$_REQUEST['SBS'] 代替$_POST['SBS'] 来默认来自POST 或来自查询字符串的值,通过GET

【讨论】:

  • @MarkButler,没问题。如果答案有帮助,请随时对其进行投票,甚至可以将其标记为已接受的答案。
  • 我接受了,但显然需要更多声望才能投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 2011-06-12
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
相关资源
最近更新 更多