【问题标题】:Using square brackets in hidden HTML input fields在隐藏的 HTML 输入字段中使用方括号
【发布时间】:2009-07-16 13:24:26
【问题描述】:

我正在分析别人的 PHP 代码,我注意到输入 HTML 有许多隐藏的输入字段,其名称以 '[]' 结尾,例如:

<input type="hidden" name="ORDER_VALUE[]" value="34" />
<input type="hidden" name="ORDER_VALUE[]" value="17" />

处理此输入的 PHP 页面获取每个值,如下所示:

foreach ($_REQUEST["ORDER_VALUE"] as $order_value) {
    /...
}

'[]' 是做什么用的?指定将有多个同名的输入字段?

【问题讨论】:

    标签: php html


    【解决方案1】:

    它将数据作为数组传递给 PHP。当您有同名的 HTML 表单时,它将附加到逗号列表中,如复选框列表。这里 PHP 有处理将其转换为基于 [] 的 PHP 数组,如下所示:

    要将您的结果作为数组发送到您的 PHP 脚本,您可以将 或 元素命名为:

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

    注意变量名后面的方括号,这就是使它成为数组的原因。您可以通过为不同的元素分配相同的名称来将元素分组到不同的数组中:

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

    这会生成两个数组,MyArray 和 MyOtherArray,它们会被发送到 PHP 脚本。也可以为您的数组分配特定的键:

    <input name="AnotherArray[]" />
    <input name="AnotherArray[]" />
    <input name="AnotherArray[email]" />
    <input name="AnotherArray[phone]" />
    

    http://us2.php.net/manual/en/faq.html.php

    【讨论】:

      【解决方案2】:

      是的。基本上 PHP 会知道将所有具有相同名称的值粘贴到一个数组中。

      顺便说一句,这适用于所有输入字段,而不仅仅是隐藏字段。

      【讨论】:

        【解决方案3】:
        【解决方案4】:

        大多数表单处理库都希望作者说明他们是否要将一段数据视为字符串或字符串数​​组。

        PHP 的作者决定与世界其他地方不一致,并要求专门构造 HTML。

        将方括号放在名称的末尾告诉 PHP 将其视为数据数组。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-12
          • 1970-01-01
          • 1970-01-01
          • 2016-06-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多