Подтвердить что ты не робот

Входные массивы HTML

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

Я использовал их раньше, но мне интересно, что это называется, и если есть спецификация для него?

Я не мог найти его в HTML 4.01 Spec и результаты в различных результатах Google называют его "массивом" вместе со многими PHP примеры обработки данных формы.

4b9b3361

Ответ 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.
}
?>