Установка переменной php в меню навигации

У меня есть меню навигации (меню внутри меню) вроде этого:

<nav id = "ml-menu" class = "menu">
    <div class = "menu__wrap">
        <ul data-menu = "main" class = "menu__level" tabindex = "-1" role = "menu" aria-label = "All">
            <li class = "menu__item" role = "menuitem"><a class = "menu__link" data-submenu = "submenu-1" aria-owns = "submenu-1" href = "./index.php?lvl=AP">AP</a></li>
        </ul>

        <ul data-menu = "submenu-1" id = "submenu-1" class = "menu__level" tabindex = "-1" role = "menu" aria-label = "Vegetables">
            <li class = "menu__item" role = "menuitem"><a class = "menu__link" data-submenu = "submenu-1-1" aria-owns = "submenu-1-1" href = "./index.php?lvl=AP">AP1</a></li>
        </ul>
    </div>
</nav>

Я хочу установить PHP vriable при щелчке по пункту меню, и он работает, только если я удалю data-submenu, что означает, что я хочу иметь возможность перейти ко второму меню.

Я использую $_GET['lvl'] для чтения моей переменной.

Есть идеи, как это решить, или сделать по-другому?

Мой код js:

<script>
    (function() {

        var menuEl = document.getElementById('ml-menu'),
            mlmenu = new MLMenu(menuEl, {
                backCtrl : false, // show back button
                onItemClick: loadDummyData // callback: item that doesn´t have a submenu gets clicked - onItemClick([event], [inner HTML of the clicked item])
            });

        // mobile menu toggle
        var openMenuCtrl = document.querySelector('.action--open'),
            closeMenuCtrl = document.querySelector('.action--close');

        openMenuCtrl.addEventListener('click', openMenu);
        closeMenuCtrl.addEventListener('click', closeMenu);



        function openMenu() {
            classie.add(menuEl, 'menu--open');
            closeMenuCtrl.focus();
        }

        function closeMenu() {
            classie.remove(menuEl, 'menu--open');
            openMenuCtrl.focus();
        }

        var gridWrapper = document.querySelector('.content');

        function loadDummyData(ev, itemName) {
            ev.preventDefault();
            closeMenu();

            gridWrapper.innerHTML = '';
            classie.add(gridWrapper, 'content--loading');
            setTimeout(function() {
                classie.remove(gridWrapper, 'content--loading');
                $('#table_id').DataTable();

                gridWrapper.innerHTML = 'some code...'

            }, 700);

        }
    })();
</script>

К сожалению, неясно, о чем вы спрашиваете. Вы хотите установить переменную PHP при щелчке по пункту меню? Опубликованный вами URL-адрес должен позволить вам читать $_GET['lvl'] в вашем PHP-коде, и он будет иметь значение AP.

Capricorn 25.07.2018 15:15

Да, именно так, я хочу установить PHP vriable при щелчке по пункту меню, приведенный выше код возвращает пустую переменную при чтении с $_GET['lvl']

BOUKANDOURA Mhamed 25.07.2018 15:27
data-submenu отвечает за отображение подменю при наведении курсора? В этом случае переменная PHP может быть установлена ​​только в том случае, если вы действительно делаете запрос к серверу (то есть щелкаете ссылку).
Josh 25.07.2018 15:33
data-submenu отвечает за отображение подменю при нажатии. но я все еще получаю пустую переменную.
BOUKANDOURA Mhamed 25.07.2018 15:37

Код в вопросе может привести только к PHP-переменной $_GET['lvl'] со значением AP. Если нет, значит в вопросе не хватает чего-то важного. Якорь когда-либо открывался или существуют обработчики событий JS, которые вообще предотвращают открытие целевого URL? Или целевой URL-адрес переписывается каким-то JS-скриптом перед его запросом? Или, или, или… - как видите, вам нужно будет предоставить более подробную информацию, на данный момент проблема не связана с кодом, опубликованным выше.

feeela 25.07.2018 15:46

Я добавил код js. Спасибо.

BOUKANDOURA Mhamed 25.07.2018 16:00

Это также работает, когда я открываю пункт меню на новой странице.

BOUKANDOURA Mhamed 26.07.2018 16:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
127
0

Другие вопросы по теме