Автоматическая подставка города в селекте при переходе в данный город по урл, как реализовать?

Здравствуйте.

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

При выборе города, мы попадаем на страницу, допустим выбираем в селекте Москва, и нас перекидывает на урл сайт.ru/msk/ , как сделать чтобы в селекте первая строка выберите город, была Москва. Ну так и для других городов. Чтобы подставлялся тот город в котором мы находимся.

Сайт на html

Сам селект:
<div class="dropdownn">
    <button onclick="myFunction()" class="dropbtn">Выберите город <i class="icon-arr"></i></button>
    <div id="myDropdown" class="dropdownn-content">
      <input type="text" placeholder="Поиск" id="myInput" onkeyup="filterFunction()">
      <div class="ryll1">
        <div class="drt">
          <a href="/msk/" title="Москва">Москва</a>
          <a href="/dalnegorsk/" title="Москва">Дальнегорск</a>
          <a href="/vladivostok/" title="Москва">Владивосток</a>
          <a href="/habarovsk/" title="Москва">Хабаровск</a>
        </div>
      </div>
    </div>
  </div>


Скрипт селекта:
<script>
      function myFunction() {
        document.getElementById("myDropdown").classList.toggle("show");
      }
      function filterFunction() {
        var input, filter, ul, li, a, i;
        input = document.getElementById("myInput");
        filter = input.value.toUpperCase();
        div = document.getElementById("myDropdown");
        a = div.getElementsByTagName("a");
        for (i = 0; i < a.length; i++) {
          if (a[i].innerHTML.toUpperCase().indexOf(filter) > -1) {
            a[i].style.display = "";
          } else {
            a[i].style.display = "none";
          }
        }
      }
    </script>
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
ws17
@ws17 Автор вопроса
Вот решение:
<script>
      function myFunction() {
        document.getElementById("myDropdown").classList.toggle("show");
      }
      function filterFunction() {
        var input, filter, ul, li, a, i;
        input = document.getElementById("myInput");
        filter = input.value.toUpperCase();
        div = document.getElementById("myDropdown");
        a = div.getElementsByTagName("a");
        for (i = 0; i < a.length; i++) {
          if (a[i].innerHTML.toUpperCase().indexOf(filter) > -1) {
            a[i].style.display = "";
          } else {
            a[i].style.display = "none";
          }
        }
      }

      
      jQuery(document).on('ready', function() {
        var filter = jQuery('#myDropdown'), links = filter.find('a'), btn = jQuery('.dropbtn')

        links.each(function(index, el) {
          var _this = jQuery(el), attr_href = _this.attr('href'), re = new RegExp(attr_href.replace(/\\/g, ''),'ig');

          if(re.test(window.location.pathname)) {
            _this.addClass('selected');
            btn.text(_this.text());
          }
        });

      });
    </script>


и стиль
.drt a.selected {
  background: #F48951;
  color: #fff;
}


Добавлен кусок когда. При переходе в город из списка селект, город выделяется и где написано выберите город, написан город.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SpiderPigAndCat
@SpiderPigAndCat
get параметр в урл пихай и потом проверяй какой город
в localstorage тоже можно передавать текщий город
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы