Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/32: Рейтинг темы: голосов - 32, средняя оценка - 4.84
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99

Получение значений выбранных option в select

08.01.2013, 18:47. Показов 6380. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Имеется такой select

PHP
1
2
3
4
5
6
7
8
9
10
              <?php 
              $res = mysql_query("SELECT DISTINCT course FROM name_users ");
                echo '<select id="section1" name="course[]" multiple="multiple" style="width: 100px">';
                while($row = mysql_fetch_array($res) )
                {
                        echo ('<option value="'.$row['course'].'">'.$row['course'].'</option>');
 
                }
                echo '</select>';
              ?>
Обрабатываю его вот этим скриптом :

JavaScript
1
2
3
4
5
6
7
8
9
10
11
function getSelectedIndexes (a)
            {
              oListbox = document.getElementById(a);
              var selectet_value;
              for (var i=0; i < oListbox.options.length; i++)
              {
              alert(i);
                  if (oListbox.options[i].selected) selectet_value=selectet_value.concat(oListbox.options[i].text,"+");
              }
              return selectet_value;
};
А вызываю я его вот тут :
JavaScript
1
2
3
4
5
6
7
8
9
10
11
$('#btn1').click(function(){
                $.ajax({  
                    type: 'POST',
                    url: 'grup.php',
                    data: 'arr='.concat(getSelectedIndexes('select1')),
                    cache: false,  
                    success: function(html){  
                        $("#block1").html(html);  
                    }  
                });   
 });
В качестве параметра передается id селекта, а возвращать должен сроку выбранных елементов(с разделителем '+'). Но не работает, и я подозреваю что проблема в самом методе, или в том как я пытаюсь его вызвать. Так как если я его уберу - аякс работает нормально.

Заранее благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2013, 18:47
Ответы с готовыми решениями:

Проверка выбранных <option> в <select multiple>
Всем привет, есть такой селект: &lt;select id=&quot;Materials&quot; size=&quot;6&quot; multiple&gt; &lt;option style=&quot;background-color:#333;color:#fff;&quot;...

Выбрать option в select при выборе другого option в другом select
Всем добрый привет! Подскажите, пожалуйста, как реализовать вот какую штуку: необходимо, чтобы при выборе option с value=0 в select с...

Присвоить несколько значений одному option из select
Всем здрасти, в js не очень то я, поэтому нужна помощь. Есть два combobox: combobox1 и combobox2. В combobox1 есть множество option с...

12
141 / 63 / 11
Регистрация: 19.06.2012
Сообщений: 250
08.01.2013, 19:40
Это не PHP, за место . должен быть +.
JavaScript
1
data: 'arr='.concat(getSelectedIndexes('select1')), // fail
JavaScript
1
data: 'arr=' + concat(getSelectedIndexes('select1')),
И почему бы просто не сделать так?
JavaScript
1
data: 'arr=' + $('#section1').val(),
0
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
08.01.2013, 19:42  [ТС]
Дак concat ето функция вызываемая на 'arr' ... или я не прав ?

Добавлено через 30 секунд
Потому что там не одно значение может быть )
0
141 / 63 / 11
Регистрация: 19.06.2012
Сообщений: 250
08.01.2013, 19:43
Что вы пытаетесь передать из списка? Выбранное значение или индекс выбранного значения?
0
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
08.01.2013, 19:47  [ТС]
Выбранные значения , предварительно объединив их в строку. Вот тут вроде бы и ошибка , или в самом вызове етой функции
0
08.01.2013, 19:48

Не по теме:

Сейчас по своему напишу...
з.ы. и массивы не передаются, если что...

1
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
08.01.2013, 19:58  [ТС]
За массивы уже знаю, посему и появился метод, пытающийся соединить результат в строку, с неким разделителем )

Добавлено через 6 минут
Неожиданно заработало : нужно было переменную в явном виде указать строкой

JavaScript
1
var selected_value='';
0
141 / 63 / 11
Регистрация: 19.06.2012
Сообщений: 250
08.01.2013, 20:07
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<select id="select1" multiple="multiple">
    <option value="value1">Value 1</option>
    <option value="value2">Value 2</option>
    <option value="value3">Value 3</option>
</select>
<br>
<input type="button" onclick="indexControl(document.getElementById('select1'));" value="Check" />
 
<script type="text/javascript">
indexControl = function (e) {
    var indexList = [];
    for (var i = 0; i < e.length; i++) {
        if (e[i].selected) {
            indexList.push(i); // index, не value
        };
    };
    if (indexList.length) {
        $.ajax({  
            type: 'POST',
            url: 'grup.php',
            data: 'arr=' + indexList.join('&arr='), // arr=0&arr=1&arr=2
            cache: false,  
            success: function (data) {  
                $("#block1").html(data);  
            }  
        }); 
    } else return false;
};
</script>
1
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
08.01.2013, 20:15  [ТС]
Ваш в разы меньше )

Но я не пойму, вы получается циклом передаете файлу каждый индекс. Но у каждого ведь то ключ arr. Оно разве не затрется ?
0
141 / 63 / 11
Регистрация: 19.06.2012
Сообщений: 250
08.01.2013, 20:32
Точно сказать не могу, но мне кажется, что PHP объединит их в массив.

PHP
1
$_POST['arr'][0] // Допустим 1-ое значение
0
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
08.01.2013, 20:34  [ТС]
Тут я уверен, что значения будут просто затиратся )
0
141 / 63 / 11
Регистрация: 19.06.2012
Сообщений: 250
08.01.2013, 21:04
Тогда так.

PHP
1
2
3
4
5
6
7
8
$query = explode('&', $_SERVER['QUERY_STRING']);
$params = array(); // массив со значениями
foreach ($query as $param) {
    if (preg_match("/^arr/", $param)) {
        $value = explode("=", $param);
        array_push($params, $value[1]);
    }
}

Не по теме:

C PHP я плохо знаком, поэтому будет лучше, если кто-то поправит меня.

1
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
08.01.2013, 22:18  [ТС]
В етом уже нету необходимости )

Благодарен за уделенное внимание )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2013, 22:18
Помогаю со студенческими работами здесь

html select\ multi select option одним кликом
Здравствуйте помогите реализовать такую штуку допустим есть html select список . Нужно сделать так чтоб мульти выделение было кликом мышки...

Select - option
Добрый день! Подскажите пожалуйста, как сделать так чтобы при выборе какого-либо элемента из списка option, второй option давал бы...

Ajax select option
Здравствуйте! Есть аякс скрипт. Который при выборе option, выводит div тег. Каждый раз когда нажимаю на разные option выводится новый...

Вставка option в select
Добрый вечер. Имеется Select: &lt;select id='sel_1'&gt; &lt;option&gt;Москва&lt;/option&gt; &lt;option&gt;Петербург&lt;/option&gt; ...

Программный выбор SELECT OPTION
Не получается сделать программный выбор из выпадающего списка. У SELECT ID=&quot;fm_cn&quot;. Пытаюсь выбрать OPTION с VALUE=&quot;5&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru