Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Передать все значения списка разом (https://javascript.ru/forum/dom-window/4088-peredat-vse-znacheniya-spiska-razom.html)

LRCenter 22.06.2009 22:03

Передать все значения списка разом
 
Здравствуйте.

Есть такой элемент формы как раскрывающийся список, а есть список множественного выбора (это так выглядит: select multiple size="..."), это когда список всегда раскрыт, удерживая shift или ctrl пользователь может выбрать несколько вариантов сразу.

Почему при отправке формы передается только последнее из выбранных элементов? Как получить на выходе в переменной массив выбранных значений? И еще: как передать все значения списка разом, игнорируя выбор?

Это возможно средствами JS?

Kolyaj 22.06.2009 22:29

Цитата:

Сообщение от LRCenter
Почему при отправке формы передается только последнее из выбранных элементов?

А с чего вы взяли, что там последний передается? Там все передаются.

Цитата:

Сообщение от LRCenter
Как получить на выходе в переменной массив выбранных значений?

Дать селекту имя, заканчивающееся на [], например, select[].

Цитата:

Сообщение от LRCenter
как передать все значения списка разом, игнорируя выбор?

Напрямую из селекта, очевидно, никак. Можно параллельно с формированием селекта формировать hidden-поле, которое и передавать.

x-yuri 23.06.2009 00:13

Цитата:

А с чего вы взяли, что там последний передается? Там все передаются.
думаю потому, что ТС не добавил [] в конец имени

Цитата:

как передать все значения списка разом, игнорируя выбор?
а что селект создается пользователем на клиентской стороне? Не вижу причин передавать весь список

LRCenter 23.06.2009 07:28

Цитата:

Сообщение от x-yuri (Сообщение 22597)
а что селект создается пользователем на клиентской стороне? Не вижу причин передавать весь список

именно. значения селекта добавляются и удаляются пользователями. Это тоже сделано на JS.
Может быть можно выделить все значения селекта (как ctrl-A) при нажатии кнопки отправить? Это можно сделать на JS?

Kolyaj 23.06.2009 10:03

Цитата:

Сообщение от x-yuri
думаю потому, что ТС не добавил [] в конец имени

Отправляться-то они отправляются, а вот парсит ли их PHP -- это другой вопрос.

Цитата:

Сообщение от LRCenter
Может быть можно выделить все значения селекта (как ctrl-A) при нажатии кнопки отправить? Это можно сделать на JS?

Лучше все-таки
Цитата:

Сообщение от Kolyaj
параллельно с формированием селекта формировать hidden-поле, которое и передавать.


LRCenter 23.06.2009 10:17

А как это сделать?

Kolyaj 23.06.2009 10:41

Рядом с селектом создаете hidden-поле и записываете туда значение.

LRCenter 23.06.2009 10:53

Значения через символ-разделитель, а в php разобрать c помощью explode?
только я в JS не очень разбираюсь, потому и спрашиваю здесь, как это сделать практически?

x-yuri 23.06.2009 11:20

можно через разделитель, а можно на каждое значение создавать hidden-поле, тогда в php сразу получиться массив (если назвать эти поля с []), но фактически разницы особой не вижу

LRCenter 23.06.2009 11:32

Дайте, пожалуйста, прмер JS-кода, вставляющего все переменные из select-а через разделитель в hidden, при нажатии кнопки отправки


Часовой пояс GMT +3, время: 00:40.