Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/32: Рейтинг темы: голосов - 32, средняя оценка - 4.97
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371

При выборе какого-то значения в select'e нужно показывать другой select рядом

23.11.2013, 15:45. Показов 6979. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я полный ноль в js, но нужно следующее:
На сайте есть разделы. При выборе какого-то значения в select'e нужно показывать другой select рядом (скрипт должен брать подразделы выбранного раздела с сервера, ну или сразу брать откуда-нибудь со страницы сразу) с подразделами. Их может быть несколько, поэтому как-то динамически надо запилить. Если можно, то дайте скрипт Или сайт, откуда можно скопировать это
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2013, 15:45
Ответы с готовыми решениями:

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

Как при выборе определённого значения поля select показать новое поле select
Такая задача, у меня есть список значений в поле типа select. Value1 Value2 Value3 Value4 При если пользователь выбирает Value2 ...

При выборе select показывать последующий DIV не в зависимости от value и прочей "ерунды"
Уважаемые профессионалы и профессиональные любители! ...ребят, помогите пжлста разобраться в одном очень не лёгком(для меня)...

20
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
23.11.2013, 16:28
Цитата Сообщение от BuGi Посмотреть сообщение
Здравствуйте, я полный ноль в js
Как же так?
Кликните здесь для просмотра всего текста


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
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
var s = [
    {value: 1, text: 'item1'},
    {value: 2, text: 'item2'},
    {value: 3, text: 'item3'},
    {value: 4, text: 'item4'},
    {value: 5, text: 'item5'}
];
$('select:nth-child(1)').change(function(){
var newSelect = $('<select>');
s.forEach(function(item, i){
    newSelect.append( $('<option>', item) ).appendTo($('body'));
});
});
</script>
</body>
<html>

Данные с сервера получаем вот так:
JavaScript
1
2
3
$.get('http://www.site.com/list.json', function(items){ 
    ...
}, 'json');
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
23.11.2013, 21:13  [ТС]
Лучше сразу хранить категории и подкатегории на странице или получать при надобности с сервера? Они у меня статические и наверно редко будут изменяться
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
24.11.2013, 12:29
Я как делал.

Событие onchange="myfunction(this.value)" на select. В событии скрипт:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function myfunction(value1) {
value1 = 
$.ajax({
        type: "POST",
        url: "script.php",
        data: "field1="+value1,
        success: function(msg){
            $("#resultblock").append(msg);
       }
    });
}
В php скрипте. Получаете поле обычным $_POST['filed1'] и потом принтом выводите html код. Он будет выводиться в <div id="resultblock"></div>.

Писал на скорую руку. Надеюсь принцип понятен)
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
04.12.2013, 19:48  [ТС]
Такой вопрос: стоит ли выводить сразу все (куда-нибудь, чтобы скрипт потом сразу брал) или стоит подгружать?
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
04.12.2013, 20:44
Лучше делать подгрузку конечно, заодно узнаете как это делается, авось понравится ajax и будете в других местах его применять.
Да и вообще, мы же тут не быдлокодеры из подмосковья, так что давайте красиво писать.
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
04.12.2013, 21:00  [ТС]
JavaScript
1
$("#resultblock").append(msg);
Тут скорее всего не так надо будет. Ведь если выберется другой пункт, то надо будет это убрать, а оно останется
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
04.12.2013, 21:06
Цитата Сообщение от BuGi Посмотреть сообщение
JavaScript
1
$("#resultblock").append(msg);
Тут скорее всего не так надо будет. Ведь если выберется другой пункт, то надо будет это убрать, а оно останется
Ну да да, html(msg), косячнул чутка =)
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
04.12.2013, 21:12  [ТС]
Цитата Сообщение от fenix1991 Посмотреть сообщение
Ну да да, html(msg), косячнул чутка =)
Не, я просто бегиннер в джаваскрипте, заметил) А если у меня будет 3 раздела например? То есть выбираю 1, 2, 3 (все должны поочередно появляться). Если я правильно понял, то html(msg) должен раз добавить и все. А меня надо после этого еще 1

Добавлено через 2 минуты
Хотя для начала можно обойтись и двумя.. А как сделать, чтобы отправлялся только конечный айдишник? Т.е есть выбор
-Электроника
--Что-то
-Другое
И при выборе другое новый селект появиться не должен, а должен отправиться id этого другого, а вот если выберу Электроника->Что-то, то id электроники не нужен, а нужен id Что-то
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
04.12.2013, 21:36
Цитата Сообщение от BuGi Посмотреть сообщение
Не, я просто бегиннер в джаваскрипте, заметил) А если у меня будет 3 раздела например? То есть выбираю 1, 2, 3 (все должны поочередно появляться). Если я правильно понял, то html(msg) должен раз добавить и все. А меня надо после этого еще 1

Добавлено через 2 минуты
Хотя для начала можно обойтись и двумя.. А как сделать, чтобы отправлялся только конечный айдишник? Т.е есть выбор
-Электроника
--Что-то
-Другое
И при выборе другое новый селект появиться не должен, а должен отправиться id этого другого, а вот если выберу Электроника->Что-то, то id электроники не нужен, а нужен id Что-то
Да ну просто. В скрипте перед отправкой ajax Запроса проверяете какое значение пришло: если пришло значение соответствующее полю "Другое" то делаете одно, если другое значение - то делать другое.

Как делать последовательные выпадающие списки..
Я делал так. Выполняется ajax-запрос, а он возвращает список (select) в котором уже содержится код с onchange'ем, в котором вызывается другая функция, отправляющая другой запрос ( ну или можно сделать чтобы одна функция всё отправляла, по ситуации смотреть надо).
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
04.12.2013, 23:27  [ТС]
Цитата Сообщение от fenix1991 Посмотреть сообщение
Да ну просто. В скрипте перед отправкой ajax Запроса проверяете какое значение пришло: если пришло значение соответствующее полю "Другое" то делаете одно, если другое значение - то делать другое.
Я не то имел в виду) У меня после отправки формы отправится все значения всех селектов (и электроника, и что-то), а надо только одного выбранного
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
04.12.2013, 23:30
Я так понял у Вас перезагрузка страницы чтоли происходит?
Вообще в ajax-запросе вы данные передаете сами, так что лишнее не должно передаваться. Смотрите пример выше
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
04.12.2013, 23:32  [ТС]
Цитата Сообщение от fenix1991 Посмотреть сообщение
Я так понял у Вас перезагрузка страницы чтоли происходит?
Вообще в ajax-запросе вы данные передаете сами, так что лишнее не должно передаваться. Смотрите пример выше
Нет, речь же идет о том, что селект после выбора главной категории не будет заменяться, а рядом еще один будет появляться? Я хочу это)
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
05.12.2013, 00:12
да рядом, ещё один будет, укажите только при вызове ajax в новый div записывать данные
1
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
09.12.2013, 08:07  [ТС]
Все работает с одной категорией. Но я все-таки не понимаю как сделать динамическое количество категорий. Стоит ли для них создавать определенное количество дивов/спанов и потом их заполнять или можно сделать как-то более динамическим способом?
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
09.12.2013, 09:32
Можно создавать определенное количество дивов и спанов, а можно примерно так:
HTML5
1
2
3
<div id="myselectone">
123
</div>
JavaScript
1
2
3
4
5
/*ajax запрос, где
success: function(msg){
            var val = jQuery("div[id*='myselect']");
            jQuery(msg).insertAfter(val);
*/
Идея в чем. Есть блок с id="myselectone". Вы отправляете ajax запрос, где генерируются данные и select с id, который содержит в себе "myselect". Далее скрипт ищет последний элемент на странице с таким id и вставляет Ваши данные после него. Если опять пошлете запрос, то новые данные будут вставлены уже после второго селекта.

P.S. Возможно что-то неверно)) Не тестировал и писал на коленке, но я бы думал в этом направлении. Возможно будет ошибка с var val; Тут надо смотреть документацию и просто тестировать будут ли ошибки. Могу скинуть статейку вместе с сайтом, в котором пользуюсь мини-справочником по селекторам.
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
09.12.2013, 15:26  [ТС]
А что если создать объект
var data = {id, html};//тут дочерние разделы
Сделать массив и хранить там id выбранного уровня и хтмл. А при выборе проверять ид и устанавливать хтмл. Но вот проблема. Каждый новый селект должен хранить свой уровень у себя и на событие onchange надо запилить передачу этого уровня. Но где хранить этот уровень?
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
09.12.2013, 15:36
Да по сути уровни не нужны, если писать каждый раз после последнего элемента insertAfter
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
09.12.2013, 19:26  [ТС]
А если я захочу изменить категорию? Не получится тогда, оно разместится дальше, а не заменит собой существующие селекты
0
25 / 25 / 5
Регистрация: 19.07.2011
Сообщений: 123
09.12.2013, 19:36
Получится. Но Вы делайте проверки соответствующие. Например, при срабатывании события onchange на данной категории, все последующие удалять при помощи jquery.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2013, 19:36
Помогаю со студенческими работами здесь

Появление окошка input при выборе в списке select какого-нибудь значения
Здравствуйте!Подскажите ,пожалуйста.Можно ли сделать так, чтобы при выборе в списке select какого-нибудь значения рядом появлялось окошко...

Появление окошка input при выборе в списке select какого-нибудь значения
Здравствуйте!Подскажите ,пожалуйста, с php только начал обучение. Можно ли сделать так, чтобы при выборе в списке select какого-нибудь...

При изменении значения одного select нужно подгрузить в другой select соответствующие данные, которые лежат в базе
Прошу прощения за возможный оффтопик. В форме есть два поля select. При изменении значения одного select нужно подгрузить в другой...

Показывать ту или иную картинку при выборе значения в ComboBox
Ребята нужна помощь я только начинаю изучать данный язык программирования Что я хочу сделать это если я выбрал в строке где есть...

Изменение label при выборе значения в select
Сабж. Дана форма на ней находится select, нужно, чтобы при выборе значения в select значение label изменялось. Как это сделать ?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru