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