Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Массив из выбранных селектов (https://javascript.ru/forum/events/74999-massiv-iz-vybrannykh-selektov.html)

Asew 24.08.2018 13:47

Массив из выбранных селектов
 
Ребят не подскажите как записать массив из выбранных значений selectbox-ов:

//1 -ый box


echo "<select class = 'test' name = 'mytest'>";

for ($i=0;$i<$r;$i++)
	{
									
	echo "<option name='".$test[$i]['id']."'>".$test[$i]['name']."</option>";
}

echo "</select>

//2 -ой box

echo "<select class = 'test' name = 'mytest'>";

for ($i=0;$i<$r;$i++)
	{
									
	echo "<option name='".$test[$i]['id']."'>".$test[$i]['name']."</option>";
}

echo "</select>
...........

N




На выходе нужно собрать массив из id выбранных каждого из select-box (количество неизвестно).

Aetae 24.08.2018 14:02

В современных браузерах можно так:
<form>
  <select class="test" id="test" name="mytest" multiple>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
  </select >
</form>
<input type="button" value="show" onclick="alert(JSON.stringify(
 
new FormData(document.forms[0]).getAll('mytest')
 
,0,4))">

laimas 24.08.2018 14:12

id должно быть уникальным, так что тут оно не к чему. А вывод строковых значений в РНР лучше в одинарных кавычках иначе интерпретатор будет зря парсить строку.

PS. И не выбранных списков у вас и не будет.

Asew 24.08.2018 14:33

Цитата:

Сообщение от Aetae (Сообщение 493350)
В современных браузерах можно так:
<form>
  <select class="test" id="test" name="mytest" multiple>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
  </select >
</form>
<input type="button" value="show" onclick="alert(JSON.stringify(

new FormData(document.forms[0]).getAll('mytest')

,0,4))">

Отлично просто :dance: , а как это переписать в функцию?

laimas 24.08.2018 14:41

Цитата:

Сообщение от Asew
Отлично просто

Это не будет работать в ослике и сафари.

Asew 24.08.2018 14:50

Цитата:

Сообщение от laimas (Сообщение 493354)
Это не будет работать в ослике и сафари.

а есть вариантик через push как-то заполнять массив из выбранных selectbox-овых значений, соответственно, для каждого select -box -а свое значение?

laimas 24.08.2018 14:53

Цитата:

Сообщение от Asew
а есть вариантик через push как-то заполнять массив из выбранных selectbox-овых значений

Интересно бы знать чего вы собираетесь сделать, занимаетесь почему-то атрибутами опций, хотя они имеют value. Причем именование атрибутов также не понятно по какому принципу, что потом еще и режется.

Asew 24.08.2018 15:04

Цитата:

Сообщение от laimas (Сообщение 493358)
Интересно бы знать чего вы собираетесь сделать, занимаетесь почему-то атрибутами опций, хотя они имеют value. Причем именование атрибутов также не понятно по какому принципу, что потом еще и режется.

обновил первый пост убрал лишнее ...

Я через push думал как-то собрать значения каждого из выбранных select-ов ...

laimas 24.08.2018 15:07

Asew,
Чего вы хотите получить? Для чего эти списки, чтобы отправить выбор пользователя на сервер? Если да, то зачем JS и какие-то дикие значения атрибутов вместо значений опций? И если отправить списки вашими именами "человеческим способом", то на сервере будет получено значение последнего списка.

Asew 24.08.2018 15:18

Цитата:

Сообщение от laimas (Сообщение 493360)
Asew,
Чего вы хотите получить? Для чего эти списки, чтобы отправить выбор пользователя на сервер? Если да, то зачем JS и какие-то дикие значения атрибутов вместо значений опций? И если отправить списки вашими именами "человеческим способом", то на сервере будет получено значение последнего списка.

Выбранное значения запихиваются в массив и потом ajax -ом отправляются на дальнейшую обработку.
Можно написать и без атрибутов.

По последнему пункту я бы тут и не писал если бы знал как собрать все значения со всех боксов.


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