HTML表单数组中的方括号。只是传统的还是有意义的?

时间:2009-11-06 16:14:34

标签: html arrays forms

我经常看到,特别是在PHP世界中,如果你想创建一个FORM数组,可以进行以下写作。

<input name="MyArray[]" />
<input name="MyArray[]" />

用方括号[]。然而,提交操作只传递两次相同的密钥条目。看起来[]只是传统的,可以很好地映射到PHP世界数组,但是你只需要使用以下内容获得相同的结果

<input name="MyArray" />
<input name="MyArray" />

事实上,在django中,无论使用何种风格,我都会得到两个条目的列表。

这是真的吗? []只是传统的,或者从HTML和HTTP键/值信息中真正有意义吗?

2 个答案:

答案 0 :(得分:11)

它们解决了PHP的限制,如果提交了多个具有相同名称的值,则不会自动生成数组,例如从一组复选框或多选中。 (IIRC它只返回最后一个值。)

就我个人而言,我一直认为这是一个非常粗制滥造的解决方法。甚至Classic ASP都可以应对这种情况,而无需在客户端添加标记。服务器端平台没有业务以这种方式对客户端施加标记要求。

答案 1 :(得分:2)

这只是传统的。


W3C states

  

form data set名称 - 值类型元组列表

并且对于每个输入元素,在提交时:

  

form data set附加一个条目,其名称为namefield元素的值为值,type为类型。

W3C未提及使用[]name属性的唯一性。