我经常看到,特别是在PHP世界中,如果你想创建一个FORM数组,可以进行以下写作。
<input name="MyArray[]" />
<input name="MyArray[]" />
用方括号[]。然而,提交操作只传递两次相同的密钥条目。看起来[]只是传统的,可以很好地映射到PHP世界数组,但是你只需要使用以下内容获得相同的结果
<input name="MyArray" />
<input name="MyArray" />
事实上,在django中,无论使用何种风格,我都会得到两个条目的列表。
这是真的吗? []只是传统的,或者从HTML和HTTP键/值信息中真正有意义吗?
答案 0 :(得分:11)
它们解决了PHP的限制,如果提交了多个具有相同名称的值,则不会自动生成数组,例如从一组复选框或多选中。 (IIRC它只返回最后一个值。)
就我个人而言,我一直认为这是一个非常粗制滥造的解决方法。甚至Classic ASP都可以应对这种情况,而无需在客户端添加标记。服务器端平台没有业务以这种方式对客户端施加标记要求。
答案 1 :(得分:2)
这只是传统的。
W3C states:
让
form data set
为名称 - 值类型元组列表
并且对于每个输入元素,在提交时:
在
form data set
附加一个条目,其名称为name
,field
元素的值为值,type
为类型。
W3C未提及使用[]
或name
属性的唯一性。