为什么我在input元素的name属性中使用括号?

时间:2011-10-30 17:11:38

标签: html

  

可能重复:
  Using square brackets in hidden HTML input fields

输入元素的name属性中的括号怎么办? 这是教程:

<input id="user_email" name="user[email]" size="30" tabindex="1" type="text">

2 个答案:

答案 0 :(得分:18)

它们在HTML中没有特别的意义。一些服务器端框架(包括PHP)使用这种符号表示它们应该在单个服务器端对象(关联数组 - 例如,PHP的情况下为map)中构建数据。因此,使用PHP,例如,如果您有name="user[email]"name="user[phone]"并提交了表单,则在服务器上的PHP代码中,您将从请求中检索单个user对象,并且会有钥匙emailphone

答案 1 :(得分:4)

就HTML而言,它们只是您可以在名称中使用的字符,与a7!没有区别。

如果您计划通过客户端的名称访问表单元素,那么它们会阻止您在JavaScript中使用点表示法(因为[在JS中具有特殊含义)所以您必须使用方括号而不是表示法。

您可能会在角色到达服务器后将其视为具有特殊意义。将数据归档为$_REQUEST['user']['email']而不是$_REQUEST['user[email]']的PHP,以及用于各种语言的许多其他表单解析库都采用了该功能。