Foros del Web » Programando para Internet » PHP »

Crear Menus Desplegables a partir de Tabla Recursiva CSS, PHP y MYSQL

Estas en el tema de Crear Menus Desplegables a partir de Tabla Recursiva CSS, PHP y MYSQL en el foro de PHP en Foros del Web. Para los que buscan este tipo de contenido les dejo un codigo que les puede servir mucho... ya ustedes lo daptan segun sus necesidades... la ...
  #1 (permalink)  
Antiguo 28/01/2011, 22:18
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 9 meses
Puntos: 11
Información Crear Menus Desplegables a partir de Tabla Recursiva CSS, PHP y MYSQL

Para los que buscan este tipo de contenido les dejo un codigo que les puede servir mucho...

ya ustedes lo daptan segun sus necesidades...

la TABLA

menus
-----------------
idmenu //id del menu
descripcion // nombre del menu
padre // id del menu al que depende
idtipomenu // tipo char, 1 indica que ese menu es una opcion que va mostrar mas listas.., 0 indica que es un menu nomral y no lleva a mas listas



Código HTML:
<link href="css/dropdown/dropdown.css" media="screen" rel="stylesheet" type="text/css" />

<link href="css/dropdown/themes/default/default.ultimate.css" media="screen" rel="stylesheet" type="text/css" /> 
Código PHP:
<?php

echo " <ul id='nav' class='dropdown dropdown-horizontal'> ";

cargarmenu("0");// Donde 0 es el Idpadre principal
   
   
function cargarmenu($id)
   {
       
$sql="select descripcion,idmenu,idtipomenu from menus where padre='$id'";
         
$r=mysql_query($sql); 

         while(
$f=mysql_fetch_array($r))
           { 
$descripcion=$f['descripcion']; $idtipomenu=$f['idtipomenu'];
           
               if (
$idtipomenu==1)
                  { 
                      echo 
"<li><span class='dir'>$descripcion</span>                  
                           <ul>   "

                           
cargarmenu($f['idmenu']);
                     echo 
"</ul></li>";        
                  }
                  else
                  {
                      echo 
"<li><a href='./'>".$f['descripcion']."</a></li>";
                  }

          }
          
   }

echo 
"</ul>";



?>


El CSS lo pueden sacar de aqui http://lwis.net/free-css-drop-down-menu/ hay muchas plantillas


* para evitar usar idtipomenu pueden hacer una consulta a la BD preguntando si ese ID tiene otros ide que dependen de el.. de ese modo en ves de preguntar si idtipomenu ==1... preguntarian el numero de registros es mayor a cero...

Última edición por richardinj; 05/02/2011 a las 00:04
  #2 (permalink)  
Antiguo 08/07/2013, 11:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Crear Menus Desplegables a partir de Tabla Recursiva CSS, PHP y MYSQL

richardinj podrias ayudarme?, me parece que si funciona pero no se en que estoy fallando que no me muestran los subniveles, solo los de idtipomenu es igual a cero
  #3 (permalink)  
Antiguo 09/07/2013, 08:29
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 9 meses
Puntos: 11
Respuesta: Crear Menus Desplegables a partir de Tabla Recursiva CSS, PHP y MYSQL

Prueba con esto... esta mejorado...

los menus son los modulos

modulos
-idmodulo
-url
-descripcion
-idpadre


Código PHP:

        
<?php


$url_base
="http://localhost/web/"//este es la url_raiz, ideal cuando tu web esta en otros niveles de carpetas

echo " <ul id='nav' class='dropdown dropdown-horizontal'> ";

cargarmenu("0",$url_base);// Donde 0 es el Idpadre principal
   
   
function cargarmenu($id,$url_base)
   {
         
$sql="select descripcion,idmodulo,url from modulo where idpadre='$id'";
         
$r=mysql_query($sql); 

         while(
$f=mysql_fetch_array($r))
           { 
$descripcion=$f['descripcion']; $url=$f['url'];
           
               
$sql2="select idmodulo from modulo where idpadre='".$f['idmodulo']."'";
               
$r2=mysql_query($sql2); 

                           if (
$f2=mysql_fetch_array($r2))
                              { 
                                  echo 
"<li><span class='dir'>$descripcion</span>                  
                                       <ul>   "

                                       
cargarmenu($f['idmodulo'],$url_base);
                                 echo 
"</ul></li>";        
                              }
                              else
                              {
                                  echo 
"<li><a href='$url_base"."modulos/$url'>".$f['descripcion']."</a></li>";
                              }          
          }
          
   }

echo 
"</ul>";



?>

Saludos,

Etiquetas: css, desplegables, menus, mysql, partir, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:12.