Javascript 在导航菜单中设置php变量
我有一个导航菜单(菜单内的菜单),如下所示:Javascript 在导航菜单中设置php变量,javascript,php,html,Javascript,Php,Html,我有一个导航菜单(菜单内的菜单),如下所示: <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"&g
<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变量吗?您发布的url应该允许您在php代码中读取
$\u GET['lvl']
,它的值为AP
。是的,我想在单击菜单项时设置一个php变量,上面的代码在读取wirh$\u GET['lvl'时返回一个空变量
数据子菜单
是否负责在悬停状态下显示子菜单?在这种情况下,只能在实际向服务器发出请求(即单击链接)时设置PHP变量。数据子菜单
负责通过单击显示子菜单。但是我仍然得到一个空变量。问题中的代码只能产生一个值为AP
的PHP变量$\u GET['lvl']
。如果没有,则问题中缺少一些重要的内容。是否曾经打开过锚,或者是否存在阻止打开目标URL的JS事件处理程序?或者,在请求目标URL之前,它是否被某个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>