【发布时间】:2011-10-30 17:11:38
【问题描述】:
输入元素的名称属性中的括号可以做什么? 这是教程:
<input id="user_email" name="user[email]" size="30" tabindex="1" type="text">
【问题讨论】:
标签: html
输入元素的名称属性中的括号可以做什么? 这是教程:
<input id="user_email" name="user[email]" size="30" tabindex="1" type="text">
【问题讨论】:
标签: html
它们在 HTML 中没有特殊含义。一些服务器端框架,包括 PHP,使用这种符号表示它们应该在单个服务器端对象(PHP 中的关联数组)中构建数据。因此,对于 PHP,例如,如果您有 name="user[email]" 和 name="user[phone]" 并提交了表单,那么在服务器上的 PHP 代码中,您将从请求中检索单个 user 对象,它将具有键 @987654324 @ 和 phone 就可以了。或者,如果您在多个输入上有 name="tags[]",PHP 会在请求对象上构建一个包含所有名为 tags 的值的数组。
【讨论】:
就 HTML 而言,它们只是您可以在名称中使用的字符,与 a、7 或 ! 没有什么不同。
如果您打算通过客户端的名称访问表单元素,那么它们会阻止您在 JavaScript 中使用点表示法(因为 [ 在 JS 中具有特殊含义),因此您必须使用方括号表示法.
一旦字符到达服务器,您可能会将它们视为具有特殊意义的字符。 PHP会将数据归档为$_REQUEST['user']['email']而不是$_REQUEST['user[email]'],并且许多其他各种语言的表单解析库都采用了该功能。
【讨论】: