Как сделать меню перехода на HTML?

Главные вкладки

Аватар пользователя VasyOK VasyOK 14 февраля 2019 в 15:17

Недавно я узнал, что в views можно создавать меню перехода. Это конечно хорошо, но как сделать то же самое без views? Просто блоком с HTML. Частично скопировал код со вьюхи. Вставил в блок. Работает.

<form method="post">
    <select class="ctools-jump-menu-change">
        <option value="">Марка Вашего авто:</option>
        <option value="::/lyuboe-avto">
            Любое авто </option>
        <option value="::/hyundai">
            Hyundai </option>
        <option value="::/ford">
            Ford </option>
        <option value="::/renault">
            Renault </option>
    </select>
</form>

НО: при переходе на нужную страницу значение не подхватывается фильтром:

Лучший ответ

Аватар пользователя VasyOK VasyOK 17 февраля 2019 в 19:21

Решение.
page.tpl.php

<select id="mob_menu" class="ctools-jump-menu-change">        
  <option value="">Наши услуги:</option>
  <?php print render($page['mob_through_menu']); ?>    
</select>

JS (ссылка выше)

(function($){
        $(document).ready(function(){  
                var url = window.location.pathname;
                console.log(url);
                $('#mob_menu option[value="' + url + '"]').attr({ 'disabled':'disabled', 'selected':'selected'});
        });  
})(jQuery);

Спасибо за внимание!

Комментарии

Аватар пользователя VasyOK VasyOK 14 февраля 2019 в 16:27

А после перехода, это где? И как послать?

Во вьюхе код такой:

<form action="/hyundai" method="post" id="ctools-jump-menu" accept-charset="UTF-8">
    <div>
        <div class="container-inline">
            <div class="form-item form-type-select form-item-jump">
                <select class="ctools-jump-menu-select ctools-jump-menu-change form-select ctools-jump-menu-processed"
                   id="edit-jump" name="jump">
                    <option value="">Марка Вашего авто:</option>
                    <option value="dd7db2e9f5c12b7981fdf13971c1b6c0::/lyuboe-avto">
                        Любое авто </option>
                    <option value="85bf7792d34ce69aaf8395a744bbb569::/hyundai" selected="selected">
                        Hyundai </option>
                    <option value="339053a415ede6ea048619a4121566ce::/ford">
                        Ford </option>
                    <option value="09d48b8b90e121f17f2e41d94c4debbe::/renault">
                        Renault </option>
                </select>
            </div>
            <input class="ctools-jump-menu-button ctools-jump-menu-hide form-submit ctools-jump-menu-processed"
               type="submit" id="edit-go" name="op" value="Пуск" style="display: none;">
        </div><input type="hidden" name="form_build_id" value="form--Tez3sDOB87-dEuNy4ySatCyqYRPM1SieaRP088Lpgc">
        <input type="hidden" name="form_token" value="1HhCnoHWJmrGS3taGiQCFdvW410FMxT0wXA4Kr_qQ5I">
        <input type="hidden" name="form_id" value="ctools_jump_menu">
    </div>
</form>
Аватар пользователя VasyOK VasyOK 14 февраля 2019 в 17:44

А что вводить? "посмотреть гет параметр"?
Выдает https://www.sitepoint.com/get-url-parameters-with-javascript/ - оно?

Я вижу что после выбора значения из селекта, в консоли веб инспектора пишет:
GET http://sitename.ru/hyundai
но как это можно использовать?

Аватар пользователя VasyOK VasyOK 14 февраля 2019 в 18:01

Что такое гет параметр вроде понял. А как его посмотреть? Ведь это не пейджер, где параметр после "?" виден по ссылке.

Аватар пользователя VasyOK VasyOK 14 февраля 2019 в 23:55

Ну так урл он постоянно разный, в завсисиммости, какой пункт из селекта выберешь.
А как по чейнджу слать?
Прописать в HTML моего селекта что-то?
Или JS скрипт сделать?

Аватар пользователя bumble bumble 15 февраля 2019 в 0:55

У тебя задача какая?
Отправлять на страницу термина? - Тогда по селекту - перенаправляй на страницу выбранного элемента.
Применять фильтр представления? - Тогда перенаправляй на страницу с нужным параметром.

Каким образом сделать - тебе решать, у тебя же идей возникла даунгрейдить это до ручного ХТМЛа.

Аватар пользователя VasyOK VasyOK 15 февраля 2019 в 1:09

Почему так сложно сказать без жаргона, что сделать, чтобы в ручном HTML-е это работало?

Задача, конечно же более сложная. Но сложное я могу. А простое пока не понял как.

Аватар пользователя VasyOK VasyOK 15 февраля 2019 в 2:51

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

Скрины сделал, для примера. Я другой сайт пилю. На сайте примера накодено не мной.

Аватар пользователя Orion76 Orion76 15 февраля 2019 в 7:20

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

Модули для этого готовые есть.
по-моему даже не один..

ищутся по словам "exposed filter block"
точно не помню, но возможно это как-то связано с модулем Better Exposed Filters

Аватар пользователя bumble bumble 15 февраля 2019 в 12:06

VasyOK wrote:

..несколько вьюх.. ..ноды и термины разных словарей.. ..в селект свести.. ..в нужные теги обернуть...

Прям совсем дико звучит.

Ну, по-факту, своди этот селект, там ХТМЛками как считаешь нужным, и обрабатывай по изменению...

Аватар пользователя VasyOK VasyOK 15 февраля 2019 в 12:28

Свести это в селект не проблема. Проблема сделать чтобы по переходу на страница пункт из селекта - этот пункт был активным на целевой старнице. Это делается через HTML или JS?

Аватар пользователя bumble bumble 15 февраля 2019 в 12:38

HTML - точно не в состоянии определять где он.
Потому - или на сервере, или на клиенте.
Как сделаешь - так и будет, в общем.

Аватар пользователя VasyOK VasyOK 17 февраля 2019 в 19:21

Решение.
page.tpl.php

<select id="mob_menu" class="ctools-jump-menu-change">        
  <option value="">Наши услуги:</option>
  <?php print render($page['mob_through_menu']); ?>    
</select>

JS (ссылка выше)

(function($){
        $(document).ready(function(){  
                var url = window.location.pathname;
                console.log(url);
                $('#mob_menu option[value="' + url + '"]').attr({ 'disabled':'disabled', 'selected':'selected'});
        });  
})(jQuery);

Спасибо за внимание!