Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59

Раскрывающийся список с ссылками

20.12.2022, 16:57. Показов 1029. Ответов 20

Студворк — интернет-сервис помощи студентам
Создал раскрывающийся список.
После перехода по выбранной из списка ссылке на струницу, нужно, чтобы в этом списке первым значился тот на страницу которого перешли. Но этого не происходит. И обратно на ссылку №1 не переходит.
Мой код:
HTML5
1
2
3
4
5
<select onchange="window.location.href=this.options[this.selectedIndex].value">
    <option value="./vgcp">Филиал № 1</option>
    <option value="./vgcp2">Филиал № 2</option>
    <option value="./vgcp3">Филиал № 3</option>
</select>
Может есть у кого рабочий код?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2022, 16:57
Ответы с готовыми решениями:

Раскрывающийся список
У меня имеется раскрывающийся список: &lt;select name=&quot;jlcontentfieldsfilter&quot; id=&quot;spe******t-209&quot; class=&quot;jlmf-select&quot;&gt; ...

Как сделать раскрывающийся список
&lt;div class=&quot;container-unit&quot;&gt; &lt;div class=&quot;subcategories&quot;&gt; &lt;ul class=&quot;tag-slider sub-links-2 row1 open&quot;&gt; &lt;li&gt; &lt;a...

Не фиксируется раскрывающийся список, а сразу переходит в раздел
Здравствуйте. Столкнулась с такой проблемой на своем сайте, сразу оговорюсь, что &quot;зеленая&quot; в этих вопросах, поэтому не судите...

20
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
20.12.2022, 18:52
HTML5
1
2
3
4
5
<select onchange="window.open(this.options[this.selectedIndex].value)">
    <option value="./vgcp">Филиал № 1</option>
    <option value="./vgcp2">Филиал № 2</option>
    <option value="./vgcp3">Филиал № 3</option>
</select>
1
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 08:31  [ТС]
Пока без изменений.
При переходе на страницу Филиал №2 в списке select первым все равно значится певрое значение (Филиал №1).
Тут видимо нужен JS.
И неработает переход по клику на первый select (Филиал №1) почему-то.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
21.12.2022, 11:41
Обычно такое делается на стороне сервера в файле шаблона при генерации разметки списка. Что у вас на серваке?
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 11:54  [ТС]
На сервере XAMPP и Joomla 3
Пока для первого поля оставил так:
PHP
1
<option disabled="disabled" selected="selected" value="">Филиалы"</option>
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
21.12.2022, 12:04
Цитата Сообщение от androv77 Посмотреть сообщение
При переходе на страницу Филиал №2 в списке select первым все равно значится певрое значение (Филиал №1).
Быть такого не может. У вас страница в новой вкладке открывается?

И ещё... Вы точную html-разметку селекта здесь привели? Может у вас там какой-нить скрипт принудительно устанавливает selected на первый элемент. А не срабатывает onchange на первом элементе, т.к. никакого change не происходит, пока вы другой option не выберите. Измените тогда разметку, и первым элементом поставьте пустой option с предложением выбора.

Добавлено через 53 секунды
о... пока писал уже сообразили..
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 12:08  [ТС]
Я бы хотел, чтобы в окне select отображался именно тот, на котором сейчас страница.
При выборе select меняется, но потом происходит переход на страницу и на ней select снова стоит самый первый.
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
21.12.2022, 12:11
Цитата Сообщение от androv77 Посмотреть сообщение
потом происходит переход на страницу и на ней select снова стоит самый первый.
У вас страница с этим селектом перезагружается что ли?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
21.12.2022, 12:13
klyapa, ТС имеет в виду, чтобы первый элемент options в селекте был текущим. То есть после перехода было:
HTML5
1
2
3
4
5
<select>
    <option value="./vgcp2">Филиал № 2</option>
    <option value="./vgcp">Филиал № 1</option>
    <option value="./vgcp3">Филиал № 3</option>
</select>
Цитата Сообщение от klyapa Посмотреть сообщение
Быть такого не может.
А как у ТСа в новой вкладке установится выбранная опция в вашей реализации?
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
21.12.2022, 12:22
Цитата Сообщение от Balanaar Посмотреть сообщение
А как у ТСа в новой вкладке установится выбранная опция в вашей реализации?
Так у него что, на каждой станице такой селект что ли? Я не из этого исходил. Тогда опциям добавить какой-нить data-* и в localstorage сохранять, допустим. ... это если на сервере ничего не трогать

Добавлено через 4 минуты
androv77, у вас по всем ссылкам (страницам) перехода такой же селект?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
21.12.2022, 12:51
Цитата Сообщение от klyapa Посмотреть сообщение
Так у него что, на каждой станице такой селект что ли?
Ну видимо да. В хедере где-нибудь. Только селект формируется по всей видимости не серверным кодом в цикле, а зафигачен хардкодом.

Добавлено через 10 минут
select здесь видимо выступает в роли меню.

Добавлено через 12 минут
Цитата Сообщение от androv77 Посмотреть сообщение
На сервере XAMPP и Joomla 3
Покажите код формирования селекта. Или я угадал и вы захардкодили его?
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 13:27  [ТС]
Весь код написан вверху темы. Вставлен через html модуль и отображается на всех страницах, что бы в любой момент можно было перейти по выбранному селекту на нужную страницу.
Соответственно после выбора нужного филиала происходит переход по ссылке, указанной в селекте.
Переход происходит, открывается страница нужного филиала, но и селект тоже перезагружается и отображает первый, а не выбранный филиал.
Просто я другого способа как select не нашел, чтобы рещить данную задачу.
Даже если я код вставлю в index.php будет тоже самое.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
21.12.2022, 13:33
Цитата Сообщение от androv77 Посмотреть сообщение
другого способа как select не нашел, чтобы рещить данную задачу
Обычно меню делается обыкновенным списком
HTML5
1
2
3
4
5
6
<ul>
  <li>
    <a href="/link">Ссылка</a>
    ...
  </li>
</ul>
, который затем стилизуется в CSS. Но раз уж выбрали вариант с селектом, то пускай.
Вам следует формировать меню средствами PHP. На сервере проверяете текущую открытую страницу. На основании этого выстраивайте сортировку пунктов селекта.
1
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 13:35  [ТС]
Я пытался сделать такое меню средствами cms joomla, но все не то.
Средствами PHP правильнее будет. Просто ничего похожего не нашел.
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
21.12.2022, 14:45
androv77, попробуйте. Изменения будут сохраняться на время сессии
HTML5
1
2
3
4
5
6
<select id="branchof">
    <option value="" disabled selected>Филиалы</option>
    <option value="./vgcp" data-branch="1">Филиал № 1</option>
    <option value="./vgcp2" data-branch="2">Филиал № 2</option>
    <option value="./vgcp3" data-branch="3">Филиал № 3</option>
</select>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(() => {
    const branchof = document.getElementById('branchof');
    const key = '_branch_';
    const storage = sessionStorage.getItem(key);
    
    if(storage) {
        [...branchof.options].map(
            opt => (opt.selected ? opt.selected = false : null, opt)
        ).find(opt => opt.dataset.branch === storage)?.setAttribute('selected', true);      
    }   
    
    branchof.addEventListener('change', function () {
        let opt = this.options[this.selectedIndex];
        sessionStorage.setItem(key, opt.dataset.branch);
        location.href = opt.value;
    });
})();
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 15:18  [ТС]
С этим кодом активным показывает всегда Филиал №1, то есть первый после disable selection.

Я сделал пока через меню. Но дальше ищу решения отображения активного окна через селект или через меню.
Миниатюры
Раскрывающийся список с ссылками  
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
21.12.2022, 15:43
androv77, это bootstrap подключен?
0
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
21.12.2022, 16:10  [ТС]
В Joomla вроде он идет по умолчаю. Или я не прав...
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
21.12.2022, 16:55
androv77, код, который я дал прекрасно работает. Вот мой здешний камент, некоторой давности ...

Не по теме:

как-то помогал одному юзеру с обычным списком ... удалять, добавлять, формировать список ... Но у него ничего не получалось. Я пол дня ушатал, объясняя элементарные вещи. В конце оказалось, что у него подключен Bootstrap и ещё куча разного хлама с GitHub, которые, со старта, меняют html списка до неузнаваемости, что даже самих элементов списка не остаётся.
(C)

2
0 / 0 / 0
Регистрация: 10.10.2022
Сообщений: 59
22.12.2022, 08:24  [ТС]
Мне может Bootstrap мешять?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2022, 08:24
Помогаю со студенческими работами здесь

Раскрывающийся список
Ребят, помогите, не знаю как реализовать выпадающий список, как на картинке, должны быть 4 элемента всегда раскрыты, а остальные спрятаны.

Раскрывающийся список
Добрый день, Всем! Требуется помощь. Нужно сделать так, чтобы после открытия основного пункта меню, можно было бы перейти по ссылкам в...

Раскрывающийся список
Хотелось бы сделать такую вещь. Есть input-поле. По щелчку по нему появляется список. Некоторые пункты этого списка снабжены...

Раскрывающийся список
Как сделать раскрывающийся список что бы при выборе &lt;option&gt; в определенном месте выводила его значение например Пункт1 выводила значение...

Раскрывающийся список
Как реализовать раскрывающийся список как на картинке. Чтобы при нажатии на &quot;машина&quot; появлялись &quot;шевроле и лада&quot;. и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю 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. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru