HTML输入数组

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)

无论如何,不​​要认为它有一个特定的名称

  • "规范",例如它,位于http://us2.php.net/manual/en/faq.html.php#faq.html.arrays (7认同)
  • 我认为他理解这一点,他只想知道是否有规范. (3认同)

Pao*_*ino 21

据我所知,HTML规范中没有任何内容,因为浏览器不应该为这些字段做任何不同的事情.他们只是像往常一样发送它们,PHP就像其他语言一样解析成数组.


小智 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文档中选择它."