输入元素的name属性中的括号怎么办? 这是教程:
<input id="user_email" name="user[email]" size="30" tabindex="1" type="text">
答案 0 :(得分:18)
它们在HTML中没有特别的意义。一些服务器端框架(包括PHP)使用这种符号表示它们应该在单个服务器端对象(关联数组 - 例如,PHP的情况下为map)中构建数据。因此,使用PHP,例如,如果您有name="user[email]"
和name="user[phone]"
并提交了表单,则在服务器上的PHP代码中,您将从请求中检索单个user
对象,并且会有钥匙email
和phone
。
答案 1 :(得分:4)
就HTML而言,它们只是您可以在名称中使用的字符,与a
,7
或!
没有区别。
如果您计划通过客户端的名称访问表单元素,那么它们会阻止您在JavaScript中使用点表示法(因为[
在JS中具有特殊含义)所以您必须使用方括号而不是表示法。
您可能会在角色到达服务器后将其视为具有特殊意义。将数据归档为$_REQUEST['user']['email']
而不是$_REQUEST['user[email]']
的PHP,以及用于各种语言的许多其他表单解析库都采用了该功能。