【问题标题】:Checkboxes don't submit if unchecked, so how can I default them to true?如果未选中,复选框不会提交,那么如何将它们默认为 true?
【发布时间】:2010-09-08 19:38:51
【问题描述】:

我有一个带有复选框的表单,用于过滤某些搜索结果。

表单操作是GET,这样用户就可以导航回搜索结果,而无需确定发布数据请求消息。

我希望其中一个复选框默认为真。这本身当然不是问题,它是简单的 HTML。但是,我正在努力弄清楚是 PHP 为其提供动力。

当用户第一次访问该页面时,不会设置任何GET 变量,这意味着 thisCheckbox 将被取消设置,并且所有相关检查都将评估为 false。意思是我做不到:

#this returns a false negative
if (isset($_GET['thisCheckbox'])) echo 'checked="checked"';

如果用户明确勾选复选框并提交,那很好,因为$_GET['thisCheckbox'] 将是真的。

有没有办法解决这个问题(不使用单选按钮)?

【问题讨论】:

    标签: php html checkbox


    【解决方案1】:

    您要检查它是否已设置,如果未设置,请检查指示已发生请求的其他变量。

    【讨论】:

    • 可能没有 - 所以也许解决方案是向表单添加隐藏输入(isSubmitted)? If (isSubmitted && thisCheckbox...) 等
    • 这将是一个解决方案,是的。但是,如果您有一个文本字段或其他类似的东西;这会很好,因为他们总是成功的。
    • 应该是$this->slap($this); :P
    • @BoltClock 是独角兽我目前是static
    • 如果获取是通过表单提交(我想是这样)执行的,那么提交按钮的值也会作为请求参数发送。因此,您可以通过检查该参数来检查您是否来自请求。这可能是首先出现这种行为的原因,所以我建议你使用它。
    【解决方案2】:

    不是很好,但是引入一个隐藏字段$_GET['filterApplied'] 怎么样。如果用户提交表单,则设置此字段。比你能做到的那样

    
    if (!isset($_GET['filterApplied'] || isset($_GET['thisCheckbox'])) echo 'checked="checked"';
    

    【讨论】:

      【解决方案3】:

      如果您使用 JQuery,请执行以下操作:

      $(document).ready(function(){
      $("#thisCheckbox").attr("checked",true);
      });
      

      这应该可以解决您的问题。

      【讨论】:

      • OP 说,“我希望其中一个复选框默认为 true。当然,这本身不是问题,它是简单的 HTML。”所以实际上显示要检查的复选框在这里不是问题。 OP 正在寻找一种方法来设置 HTML 和 JS 无法控制的服务器端脚本变量。
      【解决方案4】:

      如果你不使用$_GET做其他事情,你也可以这样做

      if( empty( $_GET ) || isset( $_GET['thisCheckbox'] ) ) {
          echo 'checked="checked"';
      }
      

      【讨论】:

        【解决方案5】:

        这是一种丑陋的方法,但它有效。在复选框上方添加一个具有相同名称的隐藏输入字段。

        <input type="hidden" name="thisCheckbox" value="0">
        <input type="checkbox" name="thisCheckbox" value="1">
        

        【讨论】:

          猜你喜欢
          • 2017-08-18
          • 2018-01-15
          • 2015-09-30
          • 1970-01-01
          • 2020-10-08
          • 1970-01-01
          • 2013-08-12
          • 2016-09-19
          • 1970-01-01
          相关资源
          最近更新 更多