Вот что я понял:
Отправка полей формы с несколькими значениями, т. Е. Отправка массивов с помощью переменных GET / POST, может осуществляться несколькими различными способами, поскольку стандарт не обязательно прописан.
Три возможных способа отправки многозначных полей или массивов:
?cars[]=Saab&cars[]=Audi
(Лучший способ - PHP читает это в массив)
?cars=Saab&cars=Audi
(Плохой путь - PHP будет регистрировать только последнее значение)
?cars=Saab,Audi
(Не пробовал это)
Примеры форм
В форме многозначные поля могут принимать форму поля выбора, установленного в несколько значений :
<form>
<select multiple="multiple" name="cars[]">
<option>Volvo</option>
<option>Saab</option>
<option>Mercedes</option>
</select>
</form>
(ПРИМЕЧАНИЕ. В этом случае было бы важно назвать имя some_name[]
элемента управления select , чтобы результирующие переменные запроса были зарегистрированы PHP как массив)
... или как несколько скрытых полей с одинаковым именем :
<input type="hidden" name="cars[]" value="Volvo">
<input type="hidden" name="cars[]" value="Saab">
<input type="hidden" name="cars[]" value="Mercedes">
ПРИМЕЧАНИЕ. Использование field[]
нескольких значений действительно плохо документировано. Я не вижу упоминаний об этом в разделе о многозначных ключах в строке запроса - в Википедии или в документах W3C, посвященных множественному выбору входных данных.
ОБНОВИТЬ
Как отметили комментаторы, это очень сильно зависит от структуры. Некоторые примеры:
Строка запроса:
?list_a=1&list_a=2&list_a=3&list_b[]=1&list_b[]=2&list_b[]=3&list_c=1,2,3
Рельсы:
"list_a": "3",
"list_b":[
"1",
"2",
"3"
],
"list_c": "1,2,3"
Угловой:
"list_a": [
"1",
"2",
"3"
],
"list_b[]": [
"1",
"2",
"3"
],
"list_c": "1,2,3"
(Угловая дискуссия )
Смотрите комментарии для примеров в node.js , Wordpress , ASP.net
Поддержание порядка: еще
одна вещь, которую следует учитывать, это то, что если вам нужно поддерживать порядок ваших элементов (т.е. массив как упорядоченный список), у вас действительно есть только одна опция, которая передает разделенный список значений и явно конвертирует его в массив сам.