【问题标题】:Using PHP to "check" checkbox only if it's been checked仅当已选中时才使用 PHP 来“选中”复选框
【发布时间】:2015-07-23 07:46:53
【问题描述】:

我的 PHP 页面上有一个复选框,当我发回页面时,我只想在用户已经选中的情况下选中该复选框。我正在使用以下代码行,但这总是检查复选框,即使用户没有自己检查。我该怎么做?

<input type="checkbox" name="terms" id="terms" <?php if (isset($_POST['terms']) == true) echo('checked="checked"'); ?> /> I agree to the Terms as stated above.

【问题讨论】:

  • 尝试只输出checked 而不是checked='checked'
  • 看起来很接近你可以做 也可能你在表单操作中混淆了 get 和 post,默认情况下 get 是空白 - 只是说..

标签: php checkbox


【解决方案1】:

您需要检查 $_POST['terms'] 值

【讨论】:

  • 你的语法对你的数组键无效,它是一个字符串而不是一个常量
  • 我是用我的 iPhone 写的,所以很抱歉,我稍后会更正它
  • 当然,我总是看到它,无论如何问题是 OP 可能在表单中没有 action="post" ,这是 name != name 如果它被检查的唯一方法
  • 我认为只有在选中复选框但可能缺少某些内容时才会发送复选框
  • 复选框只有在被选中时才会被发送,除非它们在 $_GET 而不是 $_POST 中,否则它们永远不会被发送。因此 isset 将永远失败,并且通过扩展,粘性永远不会保持,
【解决方案2】:

为该输入元素设置值并在 php 中检查该值:

<input type="checkbox" name="terms" id="terms" value="1" 
    <?php if (isset($_POST['terms']) && $_POST['terms'] == 1) echo('checked="checked"'); ?> 
/> I agree to the Terms as stated above.

【讨论】:

    【解决方案3】:

    尝试写入 POST 数组并每次检查 'term' 的值。 print_r($_POST);

    你的陈述是正确的,错误一定在别的地方。

    【讨论】:

      【解决方案4】:

      确保您使用表单而不是使用 get 发布

      <form action="post" >
      

      留空就像说

      <form action="get" >
      

      查看 url 看看,只有当你有 &lt; input name="terms" checked="checked"/&gt; 时,isset($_POST['terms']) 是假的,除非你实际上没有检查它。

      【讨论】:

        猜你喜欢
        • 2017-03-02
        • 1970-01-01
        • 2016-10-07
        • 1970-01-01
        • 2016-11-09
        • 2011-07-08
        • 1970-01-01
        • 2016-08-05
        • 1970-01-01
        相关资源
        最近更新 更多