HTMLinput数组

<input name="foo[]" ... > 

我以前使用过这些,但是我想知道它是什么,以及是否有规范?

我无法在HTML 4.01规范中find它,导致各种Google结果只能将其称为“数组”,以及许多处理表单数据的PHP示例。

在PHP.net的这个页面的注释中有一些引用和指针:

Torsten说

“XHTML规范兼容性准则的C.8部分适用于使用name属性作为片段标识符,如果检查DTD,则会发现'name'属性仍然被定义为表单元素的CDATA。

Jetboy说

“根据这个: http : //www.w3.org/TR/xhtml1/#C_8在XHTML 1.0中,name属性的types已经改变了,这意味着XHTML的name属性中的方括号是无效的。

无论如何,在撰写本文时,W3C的validation人不会在XHTML文档中select这个。“

我认为这只是PHP,而不是HTML。

它使用[]将所有HTML字段parsing为数组。

所以你可以有

 <input type="checkbox" name="food[]" value="apple" /> <input type="checkbox" name="food[]" value="pear" /> <input type="checkbox" name="food[]" value="banana" /> 

当提交时,PHP将使$ _POST ['food']成为一个数组,你可以像这样访问它的元素:

 echo $_POST['food'][0]; // would output first checkbox selected 

或查看所有选定的值:

 foreach( $_POST['food'] as $v ) { print $v; } 

总之,不要以为有一个特定的名字

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

跟着它…

 <form action="index.php" method="POST"> <input type="number" name="array[]" value="1"> <input type="number" name="array[]" value="2"> <input type="number" name="array[]" value="3"> <!--taking array input by input name array[]--> <input type="number" name="array[]" value="4"> <input type="submit" name="submit"> </form> <?php $a=$_POST['array']; echo "Input :" .$a[3]; // Displaying Selected array Value foreach ($a as $v) { print_r($v); //print all array element. } ?>