Использование квадратных скобок в скрытых полях ввода HTML - PullRequest
8 голосов
/ 16 июля 2009

Я анализирую чужой PHP-код и заметил, что входной HTML имеет много скрытых полей ввода с именами, заканчивающимися на '[]', например:

<input type="hidden" name="ORDER_VALUE[]" value="34" />
<input type="hidden" name="ORDER_VALUE[]" value="17" />

Страница PHP, которая обрабатывает этот ввод, получает каждое значение следующим образом:

foreach ($_REQUEST["ORDER_VALUE"] as $order_value) {
    /...
}

Для чего используется «[]»? Указывает, что будет несколько полей ввода с одинаковым именем?

Ответы [ 4 ]

14 голосов
/ 16 июля 2009

Он передает данные в виде массива в PHP. Если у вас есть HTML-формы с тем же именем, они будут добавляться в списки запятых, например списки флажков. Здесь PHP имеет обработку для преобразования этого в массив PHP, основанный на [], например, так:

Чтобы ваш результат отправлялся в виде массива в ваш PHP-скрипт, вы называете, или элементы, подобные этому:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />

Обратите внимание на квадратные скобки после имени переменной, вот что делает ее массивом. Вы можете сгруппировать элементы в разные массивы, присвоив одно и то же имя разным элементам:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />

Это создает два массива, MyArray и MyOtherArray, которые отправляются в скрипт PHP. Также возможно назначить определенные ключи вашим массивам:

<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />

http://us2.php.net/manual/en/faq.html.php

11 голосов
/ 16 июля 2009

Да. В основном PHP будет знать, как вставить все эти значения с одинаковыми именами в массив.

Кстати, это относится ко всем полям ввода, а не только к скрытым.

3 голосов
/ 16 июля 2009
1 голос
/ 16 июля 2009

Большинство библиотек обработки форм ожидают, что автор сообщит, хотят ли они обрабатывать часть данных как строку или массив строк.

Авторы PHP решили быть несовместимыми с остальным миром и требуют, чтобы HTML создавался специально.

Заключив квадратные скобки в конец имени, PHP обращается с ним как с массивом данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...