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

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

08.01.2013, 18:47. Показов 6343. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru