【问题标题】:How to get unselected checkbox?如何获得未选中的复选框?
【发布时间】:2010-12-14 10:23:44
【问题描述】:

我有三个复选框,如 ch[0]、ch[1] 和 ch[3](有时我有更多或更少,它是动态的),在 PHP 中我也想获得未选中的项目,如下所示:0 =yes,1=no,3=yes 以此类推。

我能以某种方式解决这个问题吗?

【问题讨论】:

    标签: php arrays post checkbox


    【解决方案1】:

    一种常见的方法是在复选框旁边放置一个隐藏的表单字段,然后通过 javascript 设置复选框更改时的值。

    编辑:您不需要 javascript。但是隐藏字段是一种方法,当您不必知道在发布到的页面上请求页面上有多少复选框时。签出:http://www.felgall.com/xtutf06a.htm

    【讨论】:

    • 好吧,看起来你实际上不需要脚本:felgall.com/xtutf06a.htm
    • 编辑帖子以包含我之前评论中的链接。
    【解决方案2】:

    Unselected checkboxes are not being submitted.所以你只能通过确定所有可用复选框减去选中复选框的集合来确定未选中的复选框。

    【讨论】:

      【解决方案3】:

      如果您在服务器端同时拥有完整列表和选定列表,为什么还需要未选定列表?只需过滤掉选定的,从完整列表中提取未选定的。

      【讨论】:

      • 解释起来很复杂,但 asgerhallas 的解决方案是最简单的。
      【解决方案4】:

      您可以在 HTML 上执行此操作:

      <input type="hidden" name="ch[0]" value="no">
      <input type="checkbox" name="ch[0]" value="yes">
      ...
      <input type="hidden" name="ch[5]" value="no">
      <input type="checkbox" name="ch[5]" value="yes">
      

      并在 PHP 上以常规方式检查:

      <?php
        $ch = $_REQUEST['ch'];
        //then use $ch[0], $ch[1], ..
      ?>
      

      【讨论】:

        猜你喜欢
        • 2010-10-05
        • 1970-01-01
        • 2012-09-05
        • 2017-03-04
        • 1970-01-01
        • 2015-01-31
        • 1970-01-01
        • 2012-04-08
        相关资源
        最近更新 更多