【问题标题】:Sending unchecked multiple checkboxes发送未选中的多个复选框
【发布时间】:2022-06-14 23:20:16
【问题描述】:

我正在向 Wordpress 中的表单添加多个复选框,可让您选中和取消选中用户应具有的某些功能,并保存为您在提交表单时正在编辑的特定用户的元字段值。我为此设置了一个“用户编辑页面”,这样你就可以直接在前端进行这些编辑。

据我了解,这个问题很常见,但在我的具体情况下我仍然找不到答案,即表单不会发送未选中的框。

例如,假设会有多个具有相同名称的复选框,如下所示:

<label><input type="checkbox" name="meta[entity_access][]" value="entity1" />Entity 1</label>
<label><input type="checkbox" name="meta[entity_access][]" value="entity2" />Entity 2</label>
<label><input type="checkbox" name="meta[entity_access][]" value="entity2" />Entity 3</label>

如果我要选中其中任何一个框并提交表单,那么当我再次编辑用户时,该复选框就会被选中。但是,如果我随后取消选中相同的复选框并发送表单,返回到用户编辑页面,它仍然会被选中,因为表单没有发送未选中的框。

我已经看到解决方案,其中每个复选框都有一个隐藏字段,0 作为值:

<input type="hidden" name="meta[entity_access][]" value="0" />
<label><input type="checkbox" name="meta[entity_access][]" value="entity1" />Entity 1</label>

但这不会在meta[entity_access][] 的数组中留下很多零吗?

最后,我希望meta[entity_access][] 数组包含已选中的复选框值。如果一个值未被选中,它应该从数组中删除该值。因此,使用上面的示例,如果除entity1 之外的所有复选框都未选中,它将返回一个仅包含entity1 的数组。如果我随后取消选中 entity1 并再次提交,则该字段应返回一个空数组。

【问题讨论】:

  • 你必须明确设置索引,meta[entity_access][1]

标签: php checkbox


猜你喜欢
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 2012-04-20
  • 1970-01-01
相关资源
最近更新 更多