【问题标题】:PHP form multiple checkbox groupsPHP形成多个复选框组
【发布时间】:2018-11-20 03:12:24
【问题描述】:

我在 from 中有一组复选框,我需要使用 php 获取值。请注意,div class="group" 也可以在运行时复制(使用 jquery),因此我可能会以多个 div class="group" 复选框结束。

有没有办法设置复选框名称,以便表单数据为每个“组”分组在一起,或者以后更容易处理?还有一个问题是未选中的复选框,因此它们不会出现在帖子数据中。

我尝试使用这样的名称,但我不喜欢结果。

<form>
    <div class="group">
        <input type="checkbox" name="ev[][time]">
        <input type="checkbox" name="ev[][space]">                 
        <input type="checkbox" name="ev[][money]">
    </div>

    <div class="group">
        <input type="checkbox" name="ev[][time]">
        <input type="checkbox" name="ev[][space]">                 
        <input type="checkbox" name="ev[][money]">
    </div>
</form>

【问题讨论】:

  • 取决于您希望如何处理数据服务器端。 ev[time][] 可能更好可能更糟,目前无从得知
  • 指定索引,应该使用ev[0][time]ev[1][time] 等,因为不会发送未选中的复选框的“空”或“假”状态,从而弄乱您的数组索引。基本上使用row[0][key] 符号进行最简单的分组
  • 你不喜欢的结果有什么问题?我会使用ev1... 用于第一组,ev2... 用于第二组。
  • 如果你有像上面那样的三组组并勾选第一个和第三个“时间”复选框跳过中间一个你会得到ev[0][time] + ev[1][time] 而不是ev[0][time] + ev[2][time]当使用带有复选框字段的[] 表示法时。分组时使用详细的字段名称会更安全。

标签: php forms checkbox


【解决方案1】:

在定义复选框组时,最好使用详细的输入名称并避免使用[] 表示法。

未选中的复选框不会在帖子数据中发送,并且您的选择将错位。

<form>
    <div class="group">
        <input type="checkbox" name="ev[0][time]">
        <input type="checkbox" name="ev[0][space]">                 
        <input type="checkbox" name="ev[0][money]">
    </div>
    <div class="group">
        <input type="checkbox" name="ev[1][time]">
        <input type="checkbox" name="ev[1][space]">                 
        <input type="checkbox" name="ev[1][money]">
    </div>
    <div class="group">
        <input type="checkbox" name="ev[2][time]">
        <input type="checkbox" name="ev[2][space]">                 
        <input type="checkbox" name="ev[2][money]">
    </div>
</form>

【讨论】:

  • 我仍然没有得到未选中复选框的值。
  • 你永远不会,因为这就是 post data up 与复选框一起工作的方式。此代码所做的是通过为每个组设置唯一索引来避免任何冲突的信息。问题是,如果您不选中任何框并提交表单,您将根本不会获得ev 数据,如果您至少选中最后一个复选框,您将获得$_POST['ev'][2]['money'],因此可以迭代$_POST['ev'] .用你的 PHP 代码填补空白,你别无选择,只能自己解决这个“限制”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
相关资源
最近更新 更多