Comunidad de diseño web y desarrollo en internet online

Como hacer Menu dinamico con varios niveles de Submenus

Citar            
MensajeEscrito el 29 Dic 2011 02:30 pm
Hola a todos... ...estoy haciendo un menu con varios niveles (menu, con submenus nivel1 y estos a su vez submenus nivel2), el nombre de los items menus y submenus1 submenus2, los estoy leyendo de tres tablas con la siguiente estrcutura:

TABLA MENU
id_menu
nombre_menu

TABLA SUB_MENU1
id_sub_menu1
nombre_submenu1
id_menu

TABLA SUB_MENU2
id_sub_menu2
nombre_submenu2
id_sub_menu1

Lo que he podido hacer hasta el momento, es que me carga muy bien los menus, con los respectivos sub_menu1,... pero no he logrado que los sub_menu2, los muestre correctamente de acuerdo al sub_menu1 al que corresponden... el codigo que estoy trabajando es:

Código PHP :

<ul >
   <?php 
   while ($fila=mysql_fetch_array($rst_nombre_menu))
   {
   $id_menu = $fila["id_menu"];
   ?> 
<li>
         <a href=""><?php echo $fila["nombre_menu"]; ?></a>
                 <?php
         $rst_sub_menu1=mysql_query("SELECT * FROM sub_menu1 WHERE id_menu='$id_menu'");
         if (mysql_num_rows ($rst_sub_menu1)==0){
         }else{
         ?>
<ul>
         <?php 
         while ($fila_sub_menu1=mysql_fetch_array($rst_sub_menu1))
         {
         ?> 
<li >
         <a href=""><?php echo $fila_sub_menu1 ["nombre_sub_menu1"]?> </a> 

</li>
         <?php } ?>
</ul>
         <?php } ?>
</li>                     
         <?php } ?>
</ul>



... Como les decia... hasta acá el código me funciona OK... me muestra la lista de items del menu con sus respectivos sub_menu1.

Por favor, me puede alguien colaborar revisando el codigo e indicarme como puedo mostrar el sub_menu2 correctamente, de acuerdo al sub_menu1 .... muchas gracias

Por FabioJara

6 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 29 Dic 2011 04:53 pm
Es mejor que organices todo en JavaScript, usando php para enviar los datos a la página (jQuery es la mejor opción) googlea un poco y encontrarás la manera de hacerlo

Por ElSiniestro

Claber

285 de clabLevel


1 articulo

Genero:Masculino  

Alguien que Ayuda

chrome
Citar            
MensajeEscrito el 29 Dic 2011 11:04 pm
Pues yo hice un tutorial para hacer menús multinivel a partir de un archivo .txt
igualmente puedes mandarle el string con los datos de cada opción (el string generado según los datos en las tablas)

Crear menú HTML a partir de un .txt y Php

mira el ultimo comentario donde explico como hacerlo desde un string...

y para generar el string simplemente iteras el resultado y le agregas las tabulaciones iniciales manualmente según el nivel del menú...

Espero que te ayude...

Por hersonHN

Claber

272 de clabLevel

3 tutoriales

Genero:Masculino  

chrome
Citar            
MensajeEscrito el 08 Oct 2012 02:06 am

FabioJara escribió:

Hola a todos... ...estoy haciendo un menu con varios niveles (menu, con submenus nivel1 y estos a su vez submenus nivel2), el nombre de los items menus y submenus1 submenus2, los estoy leyendo de tres tablas con la siguiente estrcutura:

TABLA MENU
id_menu
nombre_menu

TABLA SUB_MENU1
id_sub_menu1
nombre_submenu1
id_menu

TABLA SUB_MENU2
id_sub_menu2
nombre_submenu2
id_sub_menu1

Lo que he podido hacer hasta el momento, es que me carga muy bien los menus, con los respectivos sub_menu1,... pero no he logrado que los sub_menu2, los muestre correctamente de acuerdo al sub_menu1 al que corresponden... el codigo que estoy trabajando es:

Código PHP :

<ul >
   <?php 
   while ($fila=mysql_fetch_array($rst_nombre_menu))
   {
   $id_menu = $fila["id_menu"];
   ?> 
<li>
         <a href=""><?php echo $fila["nombre_menu"]; ?></a>
                 <?php
         $rst_sub_menu1=mysql_query("SELECT * FROM sub_menu1 WHERE id_menu='$id_menu'");
         if (mysql_num_rows ($rst_sub_menu1)==0){
         }else{
         ?>
<ul>
         <?php 
         while ($fila_sub_menu1=mysql_fetch_array($rst_sub_menu1))
         {
         ?> 
<li >
         <a href=""><?php echo $fila_sub_menu1 ["nombre_sub_menu1"]?> </a> 

</li>
         <?php } ?>
</ul>
         <?php } ?>
</li>                     
         <?php } ?>
</ul>



... Como les decia... hasta acá el código me funciona OK... me muestra la lista de items del menu con sus respectivos sub_menu1.

Por favor, me puede alguien colaborar revisando el codigo e indicarme como puedo mostrar el sub_menu2 correctamente, de acuerdo al sub_menu1 .... muchas gracias




prezado:

<?php
include_once("Classes/Conexao.class.php");
$conn = '';
$conn = new Conexao(); /

$rst_nombre_menu=mysql_query("SELECT * FROM menu");
if (mysql_num_rows ($rst_nombre_menu)==0){
}else{
?>

<ul >
<?php
while ($fila=mysql_fetch_array($rst_nombre_menu))
{
$id_menu = $fila["id_menu"];
?>
<li>
<a href=""><?php echo $fila["nombre_menu"]; ?></a>
<?php
$rst_sub_menu1=mysql_query("SELECT * FROM sub_menu1 WHERE id_menu='$id_menu'");

if (mysql_num_rows ($rst_sub_menu1)==0){
}else{
?>
<ul>
<?php
while ($fila_sub_menu1=mysql_fetch_array($rst_sub_menu1))
//
{
?>
<li >
<a href=""><?php $var = $fila_sub_menu1["id_sub_menu1"]; echo $fila_sub_menu1 ["nombre_submenu1"], $var?> </a>
<?php
$rst_sub_menu2=mysql_query("SELECT * FROM sub_menu2 WHERE id_sub_menu1='$var'");

if (mysql_num_rows($rst_sub_menu2)==0){
}else{
?>
<ul>
<?php
while ($fila_sub_menu2=mysql_fetch_array($rst_sub_menu2))
{
?>
<li >
<a href=""><?php echo $fila_sub_menu2 ["nombre_submenu2"]?> </a>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>

Por sutelfacilities

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Oct 2012 02:08 am
Prezados,

Assim funciona:

<?php
include_once("Classes/Conexao.class.php");
$conn = '';
$conn = new Conexao(); /

$rst_nombre_menu=mysql_query("SELECT * FROM menu");
if (mysql_num_rows ($rst_nombre_menu)==0){
}else{
?>

<ul >
<?php
while ($fila=mysql_fetch_array($rst_nombre_menu))
{
$id_menu = $fila["id_menu"];
?>
<li>
<a href=""><?php echo $fila["nombre_menu"]; ?></a>
<?php
$rst_sub_menu1=mysql_query("SELECT * FROM sub_menu1 WHERE id_menu='$id_menu'");

if (mysql_num_rows ($rst_sub_menu1)==0){
}else{
?>
<ul>
<?php
while ($fila_sub_menu1=mysql_fetch_array($rst_sub_menu1))
//
{
?>
<li >
<a href=""><?php $var = $fila_sub_menu1["id_sub_menu1"]; echo $fila_sub_menu1 ["nombre_submenu1"], $var?> </a>
<?php
$rst_sub_menu2=mysql_query("SELECT * FROM sub_menu2 WHERE id_sub_menu1='$var'");

if (mysql_num_rows($rst_sub_menu2)==0){
}else{
?>
<ul>
<?php
while ($fila_sub_menu2=mysql_fetch_array($rst_sub_menu2))
{
?>
<li >
<a href=""><?php echo $fila_sub_menu2 ["nombre_submenu2"]?> </a>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?><?php
include_once("Classes/Conexao.class.php");
$conn = '';
$conn = new Conexao(); /

$rst_nombre_menu=mysql_query("SELECT * FROM menu");
if (mysql_num_rows ($rst_nombre_menu)==0){
}else{
?>

<ul >
<?php
while ($fila=mysql_fetch_array($rst_nombre_menu))
{
$id_menu = $fila["id_menu"];
?>
<li>
<a href=""><?php echo $fila["nombre_menu"]; ?></a>
<?php
$rst_sub_menu1=mysql_query("SELECT * FROM sub_menu1 WHERE id_menu='$id_menu'");

if (mysql_num_rows ($rst_sub_menu1)==0){
}else{
?>
<ul>
<?php
while ($fila_sub_menu1=mysql_fetch_array($rst_sub_menu1))
//
{
?>
<li >
<a href=""><?php $var = $fila_sub_menu1["id_sub_menu1"]; echo $fila_sub_menu1 ["nombre_submenu1"], $var?> </a>
<?php
$rst_sub_menu2=mysql_query("SELECT * FROM sub_menu2 WHERE id_sub_menu1='$var'");

if (mysql_num_rows($rst_sub_menu2)==0){
}else{
?>
<ul>
<?php
while ($fila_sub_menu2=mysql_fetch_array($rst_sub_menu2))
{
?>
<li >
<a href=""><?php echo $fila_sub_menu2 ["nombre_submenu2"]?> </a>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>

Por sutelfacilities

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.