对不起,但我不知道这叫什么,所以我会试着解释一下。
使用HTML表单,您可以使用相同名称的输入字段,并为每个字段指定自动分配键,例如:
<form action="somepage" method="post">
<input type="text" name="phone[]" />
<input type="text" name="phone[]" />
<input type="submit" />
</form>
提交此表单时,服务器通过POST接收数据。
作为关联数组,它看起来像这样:
Array(
[phone] => Array ( [0] => 123456789 [1] => 987654321 )
)
自动给出键0,1。
你会如何对无线电领域做同样的事情?
<input type="radio" name="option[]"/>
<input type="radio" name="option[]"/>
将两个字段视为一个字段(应该如此)并且不给它唯一的密钥...
答案 0 :(得分:0)
可以在字段名称中指定数组键。
<input type="radio" name="option[radiooption1]" />
我相信它也适用于数字键,但我还没有测试过。有关详情,请参阅http://php.net/manual/en/faq.html.php。
答案 1 :(得分:0)
单选按钮不能作为一个数组发布,你只会发布一个值,所以我没有看到给它一个索引有什么帮助。即使你像这样手动广告索引
<input type="radio" name="option[1]" />
<input type="radio" name="option[2]" />
你仍然只能在选项数组中获得一个项目
在上面的示例中,单选按钮无法正常工作,不再像单选按钮一样,它们每个都是单独的无线电,请参阅this DEMO
我的观点是,单选按钮是元素的选择,您可以为用户提供多种选择,允许他们只选择一个,因此发布与选择的单选按钮相关的任何其他数据是没有意义的,因为您只关心是有选择的。
答案 2 :(得分:0)
就HTML而言,具有相同名称的字段只是具有相同名称的字段。单选按钮是一种特殊情况,因为共享名称使它们成为组的一部分,并且只能选择一个。
在大多数表单处理库中,您可以从多个元素中获取具有相同名称的数据。
在PHP中,如果名称以[]
结尾(或[something]
表示具有预定义索引的数组),则只能将数据显示为数组。
只有选中的单选按钮才能成功,并且只能检查组中的一个单选按钮(即单选按钮的位置)。
如果您希望用户选择多个选项,请使用复选框。如果您为这些复选框指定相同的名称并以[]
结束,那么PHP将在单个数组中获取已选中复选框的所有值。
答案 3 :(得分:0)
我在VueJS中做了类似的事情,我复制了一组设置问题的字段集x次。我需要将php作为数组处理的值,因此名称属性为name_x[]
name_y[]
等。
这导致重复的单选按钮出现问题,只允许在所有实例中回答字段集问题
我发现如果我将fieldset的索引添加到输入名称而不是将数组留空,那么它会在后端提供相同的结果,现在可以在前端工作。
使用索引(0,1,2...)
宽松示例,而不是留空[]
:
<fieldset v-for="(question,index) in questions">
<label> question </label>
<input name="question[index]" type="radio" value="yes">
<input name="question[index]" type="radio" value="no">
</fieldset>