Ir para conteúdo

POWERED BY:

Arquivado

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

Kaue Machado

Aplicar class a menu ativo com querystring

Recommended Posts

Como faço pra uma classe à um menu ativo de uma página que usa querystring?

Eu geralmente uso includes, nesse caso seria fácil: <?php if($pagina_atual == "home"){?>class="ativo"<?}?>

 

Mas parece não funcionar com querystring, alguém sabe me dizer o motivo de não funcionar e como faço pra funcionar? Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa case. Eu fiz isso com o método do William esses dias:

:seta: http://wbruno.com.br/blog/2011/11/25/trocando-title-da-pagina-em-navegacao-por-query-string-php/

Uma dúvida: Qual a diferença entre usar Case e If? E getGet('') seria o equivalente a $_GET('')?

 

O querystring dele ficou um pouco diferente, o meu ficou assim:

 

		<?php

		$pagina = $_GET['pg']; 

		$pagina = strip_tags($pagina);

		$pagina = trim($pagina);

		if(empty($pagina)) {

		include("inicial.php");

		}

		else{

		include("$pagina.php");

		}

		?>

 

Tá meio difícil de entender o que ele fez hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi @Kauã,

 

Cara, eu usei if também, só que 'resumido':

$file = is_file( 'view/'.$pg.'.php' ) ? 'view/'.$pg.'.php' : 'view/home.php';

 

expandindo, seria o mesmo que:

if( is_file( 'view/'.$pg.'.php' ) )
$file = 'view/'.$pg.'.php';
else
$file = 'view/home.php';

entendeu?

 

bem parecido com o seu.

Eu criei uma função getGet(), para evitar aqueles Warnings, de 'variavel não definida' e tal..

se você usar o $_GET diretamente, e não tiver nenhum parâmetro na URL, o php dispara esse Warning, se o teu servidor estiver 'bem configurado'.

 

 

No mais, o meu switch/case ali, é só para fazer a troca da tag <title>, coisas de SEO mesmo.

@topic,

 

Para o menu atual, você pode fazer assim, usando a Query String:

	<a href="?pg=home" <?php if( $_GET['pg']=='home' ) echo ' class="ativo"';?>>Home</a>
<a href="?pg=contato" <?php if( $_GET['pg']=='contato' ) echo ' class="ativo"';?>>Contato</a>
<a href="?pg=gostei" <?php if( $_GET['pg']=='gostei' ) echo ' class="ativo"';?>>Gostei</a>

Entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o menu atual, você pode fazer assim, usando a Query String:

	<a href="?pg=home" <?php if( $_GET['pg']=='home' ) echo ' class="ativo"';?>>Home</a>
<a href="?pg=contato" <?php if( $_GET['pg']=='contato' ) echo ' class="ativo"';?>>Contato</a>
<a href="?pg=gostei" <?php if( $_GET['pg']=='gostei' ) echo ' class="ativo"';?>>Gostei</a>

Entendeu ?

Valeu! Funcionou.

 

Eu entendi sim, mas você pode me explicar por que com querystring eu não consigo puxar as variáveis que eu declarei nas páginas?

 

por exemplo, na página contato.php eu declaro:

<?php $pagina_atual = "contato"; ?>

 

se eu coloco na página index.php:

<?php if($pagina_atual == "contato") echo 'class="ativo"';?>

 

Não funciona, por que?

 

 

E e por que assim também não funciona?

<?php if($pagina == "contato") echo 'class="ativo"';?>

(nesse caso $pagina seria a variável que pega o valor de $_GET

 

Valeu pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende do instante em que você declara.

 

a página filha encherga as variaveis da página pai.

e a página pai, só vai enchergar as variaveis da pagina filha depois da filha ser incluida[/b]

 

 

pagina pai
<?php include 'filha.php'; ?>
só daqui para baixo, é que a pai vai conseguir usar as variaveis da pagina filha

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.