<input name="foo[]" ... >
Я использовал их раньше, но мне интересно, как это называется, и если есть спецификация для этого?
Я не мог найти его в спецификации HTML 4.01 и результаты в различных результатах Google только называют его «массивом» вместе со многими примерами PHP обработки данных формы.
В комментариях к этой странице на PHP.net есть несколько ссылок и указателей:
Торстен говорит
«Раздел C.8 руководящих принципов совместимости спецификации XHTML применим к использованию атрибута name в качестве идентификатора фрагмента. Если вы проверите DTD, вы обнаружите, что атрибут« name »по-прежнему определяется как CDATA для элементов формы».
Джетбой говорит
"в соответствии с этим: http://www.w3.org/TR/xhtml1/#C_8 тип атрибута name был изменен в XHTML 1.0, что означает, что квадратные скобки в атрибуте имени XHTML недопустимы.
Независимо от того, на момент написания, валидатор W3C не выбирает это на документе XHTML ».
Я думаю, что это просто PHP, а не HTML.
Он анализирует все поля HTML с [] в массив.
Таким образом, вы можете
<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 – это тот, который выполняет синтаксический анализ в массиве, как и другие языки.
Следуйте за ним …
<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. } ?>