Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jack Oliveira

Ativar menu conforme for URL

Recommended Posts

Ola pessoal boa tarde...

Estou tendo uma dificuldade em fazer ativação do menu usando PHP/FUNCTION

quero que quando clicar em uns dos menus aquele menu seja ativo com a class="active"

Na minha function esta assim

// Ativa menu
    function AtivaMenu($menulink){
        $url = $_SERVER['REQUEST_URI'];
        if(strpos($url, $menulink) == true)  echo 'class="active"';
    }

No HTML esta assim 

                    <ul class="navbar-nav ml-auto">
  <?php $Query = DBRead('menus','*',"WHERE id>0 ORDER BY id ASC"); if (is_array($Query)) { foreach ($Query as $menus) { ?>                      
                        <li><a <?php AtivaMenu($menus['url']); ?> href="<?php echo $menus['url']; ?>" target="<?php echo $menus['target']; ?>"><?php echo $menus['nome']; ?></a></li>
						<?php }} ?>
                    </ul>

Obs: Esta mesma function eu uso no meu painel ela funciona

Mais ja dentro do site ela não funciona

Se ter outra maneira que eu possa usar fico grato pela ajuda ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A melhor formar de fazer isso é:

Ao criar o link você o identifica, pode ser com o próprio id da consulta.

Então usando o javascript ao abrir a página você remove todos os classificados active dos links.

Logo após ao abrir a página você busca o link que contenha aquele id da página e adiciona o classificador active a ele.

 

Exemplo:

Criando os links

<?php
foreach ($array as $v) {
    ?>
    <a href="<?= $v['link'] ?>" id="link-de-id-<?= $v['id']?>"><?= $v['texto_a_exibir']? class="exemplo"></a>
    <?php
}

 

Na página que foi aberta consultamos seu id na consulta e usamos jascript

<script>
    var links = document.querySelectorAll('a.exemplo');
    for (var i = 0; i < links.length; i++) {
        links[i].className = 'exemplo';
    }
    document.getElementById('link-de-id-<?= $query['id'] ?>').classList.add('active');
</script>

Primeiramente removemos qualquer active que contenha em algum link

Então como o id da página tem o mesmo id do link adicionamos o classificador no link

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.