Ir para conteúdo

POWERED BY:

Arquivado

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

moonspell

menu drop down jquery PHP

Recommended Posts

Boa noite a todos.

Estou a tentar implementar um menu drop down Jquery. Tenho os menus e submenos em base de dados mysql. Antes o que fazia era simplesmente ao clicar num meno passava para a pagina seguinte enviando a categoria por url para abrir os sub-menus referentes ao menu principal. Menus são uma tabela e Sub-menus são outra tabela php.

 

O que queria era tentar implementar um menu do genero que envio:

Exemplo aqui

 

Consigo que ele leia os menus principais no primeiro painel mas nos submenus já não estou a conseguir em condições. Alguém me pode dar uma ajudinha pfv.

Envio os 2 ficheiros necessários:

 

Ficheiro Jquery é o mesmo do exemplo em cima

 

 

 

Ficheiro base php

 

<script type="text/javascript" language="javascript" src="jquery.js"></script>
<script type="text/javascript">
<!--//---------------------------------+
//  Developed by Roshan Bhattarai 
//  Visit http://roshanbh.com.np for this script and more.
//  This notice MUST stay intact for legal use
// --------------------------------->
$(document).ready(function()
{
//slides the element with class "menu_body" when paragraph with class "menu_head" is clicked 
$("#firstpane p.menu_head").click(function()
   {
	$(this).css({backgroundImage:"url(down.png)"}).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
      	$(this).siblings().css({backgroundImage:"url(left.png)"});
});
});
</script>
<style type="text/css">
body {
margin: 10px auto;
font: 75%/120% Verdana,Arial, Helvetica, sans-serif;
}
.menu_list {	
width: 150px;
}
.menu_head {
padding: 5px 10px;
cursor: pointer;
position: relative;
margin:1px;
   font-weight:bold;
   background: #eef4d3 url(left.png) center right no-repeat;
}
.menu_body {
display:none;
}
.menu_body a{
 display:block;
 color:#006699;
 background-color:#EFEFEF;
 padding-left:10px;
 font-weight:bold;
 text-decoration:none;
}
.menu_body a:hover{
 color: #000000;
 text-decoration:underline;
 }
</style>
	<?php

       session_start();//iniciar o uso da variavel de sessão 
require ('../conectar_front.php');
	error_reporting(0); // força a não mostrar erros.Colocar 0 para ambiente REAL e 1 para ambiente de teste

$idcategoria=$_GET["sector"];


	  $sql_categoria_menu="SELECT *  
	  FROM galeria_categorias
	  ORDER BY galeria_categorias_nome_pt ASC";
	  $query_categoria_menu=mysql_query($sql_categoria_menu); //executa a query e quarda o resultado no array $query
	  $linha_categoria_menu=mysql_num_rows($query_categoria_menu);


	  		  $sql_sector="SELECT *		  
	  FROM galeria_sector
	  INNER JOIN galeria_categorias
	  ON galeria_sector.galeria_sector_categorias=galeria_categorias.galeria_categorias_id
	  where galeria_sector_categorias = " .  $_GET["categoria"];
	   $query_sector=mysql_query($sql_sector); //executa a query e quarda o resultado no array $query;
	   $linha_sector=mysql_num_rows($query_sector);

       ?>





<link href="../../css.css" rel="stylesheet" type="text/css" />
<p>

</p>
<div id="firstpane" class="menu_list" > <!--Code for menu starts here-->



	  <?php 

 while($linha_categoria_menu=mysql_fetch_array($query_categoria_menu))
{ //enquanto existir valores no array ele executa o while e avança uma linha
			?>
       <p class="menu_head"><?php echo $linha_categoria_menu["galeria_categorias_nome_pt"]; ?></p>
	<div class="menu_body">



<?php 

 while($linha_sector=mysql_fetch_array($query_sector))
{ //enquanto existir valores no array ele executa o while e avança uma linha
			?>
       <a href="galerias.php?sector=<?php echo $linha_sector["galeria_sector_id"]; ?>&categoria=<?php echo $categoria; ?>"><?php echo $linha_sector["galeria_sector_titulo_pt"]; ?></a>
       <?php 		
} //Aqui fecha o ciclo while 
		?>

	</div>
			  <?php 		
} //Aqui fecha o ciclo while 
		?>
      </div>
 </div>  <!--Code for menu ends here-->
<a href="galerias.php?sector=<?php echo $linha_sector["galeria_sector_id"]; ?>&categoria=<?php echo $categoria; ?>" class="submenu_sub">-<?php echo $linha_sector["galeria_sector_titulo_pt"]; ?>

 

Agradeço a ajuda.

Cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo que eu mesmo criei, modifique conforme ache necessário:

<div id="menu">
<ul id="drop">
<?php			
	$sql = 'SELECT *
		FROM `menu` AS Menu
		ORDER BY Menu.`id` ASC';
		$resultado = $MySQLi->query($sql) OR trigger_error($MySQLi->error, E_USER_ERROR);
		while ($menu = $resultado->fetch_object()) {
	?>

<li><a href="<?php echo $menu->url; ?>"><?php echo utf8_encode($menu->nome); ?></a>

			<?php			
				$sqlSub = "	SELECT *
						FROM `submenu` AS Sub
						WHERE Sub.`mId` = '{$menu->id}'
						ORDER BY Sub.`id` ASC";

				$resulSub = $MySQLi->query($sqlSub) OR trigger_error($MySQLi->error, E_USER_ERROR);
				$nm = $resulSub->num_rows;
				if ($nm != 0) {
			?>	

<ul>
					<?php
							while ($submenu = $resulSub->fetch_object()) {
					?>
	<li><a href="<?php echo "http://".$_SERVER['HTTP_HOST'].'/'; ?><?php echo $submenu->url; ?>"><?php echo utf8_encode($submenu->nome); ?></a></li>
				<?php
						}
				?> 
</ul>
			<?php
				}
				$resulSub->free();
			?>
		<?php
			}
			$resultado->free();
		?>
</li>
</ul>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, você pode fazer em uma seguinte estrutura:

 

<ul>

<li>Pagina Inicial</li>

<li>Categorias</li>

<?php if($RESULTADOS > 0) { ?>

<ul>

<li><?php echo $SUBMENU ?>

</ul>

<?php } ?>

<li>Contato</li>

 

Este é apenas um código lógico, onde você deve inserir funções de verdade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, você pode fazer em uma seguinte estrutura:

 

<ul>

<li>Pagina Inicial</li>

<li>Categorias</li>

<?php if($RESULTADOS > 0) { ?>

<ul>

<li><?php echo $SUBMENU ?>

</ul>

<?php } ?>

<li>Contato</li>

 

 

 

Sim mas só dá o resultado dos sub menus de 1 único menu.

Este é apenas um código lógico, onde você deve inserir funções de verdade. Consigo apresentar os sub menus do primeiro bloco de mais nenhum.Reparo no exemplo que dei em cima?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você analisar meu código irá entender, é apenas utilizar o WHILE. Por exemplo:

 

$menu = 2 /* Retorna Categorias */

 

$submenu = mysql_query(... WHILE 'menuMae' = {$menu}...)

 

 

Se você se dedicar um pouco consegue...

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.