2009-07-16 77 views
8

我分析别人的PHP代码,我已经注意到,输入HTML具有名称以“[]”终结,许多隐藏的输入字段,例如:在隐藏的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) { 
    /... 
} 

什么是“[]”用的?指定将有多个具有相同名称的输入字段?

回答

11

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

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

1

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

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

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

14

它将数据作为数组传递给PHP。当你有相同名称的HTML表单时,它会附加到逗号列表中,如复选框列表。这里PHP有处理将其转换成基于上的[]像这样一个PHP数组:

,让您的结果被当成array发送到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

相关问题