【问题标题】:Checkbox checked value passed through several php pagesCheckbox选中值通过几个php页面
【发布时间】:2011-11-06 04:17:19
【问题描述】:

所以我正在尝试创建一个复选框,我可以传递它的值或将它的值存储在 cookie 中,这样我就可以在多个不同的页面中使用它。

目前我有这个:

<input type="checkbox" id="customLogoCheckbox" name="customLogo" onClick="window.open('vtest.php', '_blank','width=300,height=150,left=25,top=25,scrollbars=yes')" value="Show Active">Use Custom Logo

    <?
    if (customLogoCheckbox.checked == true)
    {
        $_SESSION['logoCheck'] = 1;
    }
    else
    {
        $_SESSION['logoCheck'] = 0;
    }

当我取消选中复选框时,它只是将 cookie 设置为 1,并且不允许它变回零,有什么想法吗?

【问题讨论】:

  • 你没有添加php代码if (customLogoCheckbox.checked == true)是javascript代码..不是php
  • 感谢您的提醒,在基于网络的编码方面仍然有点生疏/新,还有其他建议吗?

标签: php cookies checkbox checked unchecked


【解决方案1】:

您应该在 $_POST 或 $_GET 变量上应用条件,而不是在某些 php 未知的 customLogoCheckbox.checked 类型的变量上。

【讨论】:

  • 我明白你的意思,但我该怎么做?
【解决方案2】:

这应该可行:

if( isset($_REQUEST['customLogo']) && $_REQUEST['customLogo'] == "Show Active" )
   $_SESSION['logoCheck'] = 1;
else
   $_SESSION['logoCheck'] = 0;

首先检查 customLogo 复选框是否已设置,然后检查其值,如果一切正常,则将 logoCheck 设置为 1。如果 customLogo 值未设置或不是“显示活动”,则变量设置为 0 并由您选择已恢复。
这是其工作原理的示例:

<?php
//start session
session_start();
//check if form as been submitted
if( isset( $_REQUEST['submit'] ) {
   if( isset($_REQUEST['customLogo']) && $_REQUEST['customLogo'] == "Show Active" )
      $_SESSION['logoCheck'] = 1;
   else
      $_SESSION['logoCheck'] = 0;
}
?>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <input <? if( $_SESSION['logoCheck'] == 1 ) echo "checked=\"checked\"" ?> type="checkbox" id="customLogoCheckbox" name="customLogo" value="Show Active"> Use Custom Logo<br />
    <input type="submit" name="submit" value="Ok"/>
</form>

【讨论】:

  • 这听起来是个好主意,但也没有用,它被设置为零并且不会恢复。
  • 我做了一些测试,效果很好,也许有一些东西要改成 html 或 javascript。我将编辑这个答案,添加一点 HTML 来展示它是如何工作的。
猜你喜欢
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 2012-04-25
  • 2015-03-30
  • 2014-07-19
  • 2011-08-22
相关资源
最近更新 更多