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. } ?>