【问题标题】:Why do I use brackets in the name attribute of input element? [duplicate]为什么我在输入元素的名称属性中使用括号? [复制]
【发布时间】:2011-10-30 17:11:38
【问题描述】:

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

输入元素的名称属性中的括号可以做什么? 这是教程:

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

【问题讨论】:

    标签: html


    【解决方案1】:

    它们在 HTML 中没有特殊含义。一些服务器端框架,包括 PHP,使用这种符号表示它们应该在单个服务器端对象(PHP 中的关联数组)中构建数据。因此,对于 PHP,例如,如果您有 name="user[email]"name="user[phone]" 并提交了表单,那么在服务器上的 PHP 代码中,您将从请求中检索单个 user 对象,它将具有键 @987654324 @ 和 phone 就可以了。或者,如果您在多个输入上有 name="tags[]",PHP 会在请求对象上构建一个包含所有名为 tags 的值的数组。

    【讨论】:

      【解决方案2】:

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

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

      一旦字符到达服务器,您可能会将它们视为具有特殊意义的字符。 PHP会将数据归档为$_REQUEST['user']['email']而不是$_REQUEST['user[email]'],并且许多其他各种语言的表单解析库都采用了该功能。

      【讨论】:

      • 凤凰做同样的事情。
      猜你喜欢
      • 2011-04-07
      • 2020-01-30
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2017-05-11
      • 2018-01-26
      • 2013-08-19
      • 2011-06-01
      相关资源
      最近更新 更多