gak*_*gak 43 html php forms arrays
<input name="foo[]" ... >
Run Code Online (Sandbox Code Playgroud)
我以前用过这些,但我想知道它叫什么,是否有规格?
我在HTML 4.01规范中找不到它并导致各种Google结果只将其称为"数组"以及处理表单数据的许多PHP示例.
sqr*_*ram 58
它只是PHP,而不是HTML.
它将带有[]的所有HTML字段解析为数组.
所以你可以拥有
<input type="checkbox" name="food[]" value="apple" />
<input type="checkbox" name="food[]" value="pear" />
<input type="checkbox" name="food[]" value="banana" />
Run Code Online (Sandbox Code Playgroud)
并且在提交时,PHP会使$ _POST ['food']成为一个数组,你可以像这样访问它的元素:
echo $_POST['food'][0]; // would output first checkbox selected
Run Code Online (Sandbox Code Playgroud)
或者查看所有选定的值:
foreach( $_POST['food'] as $value ) {
print $value;
}
Run Code Online (Sandbox Code Playgroud)
无论如何,不要认为它有一个特定的名称
小智 14
在PHP.net的这个页面的评论中有一些引用和指针:
托斯滕说
"XHTML规范的兼容性指南的第C.8节适用于使用name属性作为片段标识符.如果检查DTD,您会发现'name'属性仍被定义为表单元素的CDATA."
Jetboy说
"根据这个:http://www.w3.org/TR/xhtml1/#C_8,在XHTML 1.0中更改了name属性的类型,这意味着XHTML的name属性中的方括号无效.
无论如何,在撰写本文时,W3C的验证器并没有在XHTML文档中选择它."