Foros del Web » Programando para Internet » PHP »

Programar Arbol de Menus

Estas en el tema de Programar Arbol de Menus en el foro de PHP en Foros del Web. Hola Amig@s, estoy tratando de programar mi menu tipo arbol, osea que sea desplegable. mi idea es la siguiente crear una tabla en la base ...
  #1 (permalink)  
Antiguo 10/01/2005, 08:36
 
Fecha de Ingreso: octubre-2003
Mensajes: 152
Antigüedad: 20 años, 6 meses
Puntos: 2
Programar Arbol de Menus

Hola Amig@s,
estoy tratando de programar mi menu tipo arbol, osea que sea desplegable.

mi idea es la siguiente crear una tabla en la base de datos, en si aqui les mando un pequeño codigo de mi avance:

Código PHP:
<?php

$data
[1]=0;
$data[2]=0;
$data[3]=0;

$data[4]=1;
$data[5]=1;

$data[6]=2;

$data[7]=5;  

$op=7;  // Opecion Prueba  $data[7]

    
function Menu($cod)
    {
        global 
$data;
        
$codigo $data[$cod];
        
ImpMenu($codigo,$cod);
        echo 
"<br>";
    }

    function 
ImpMenu($cod,$actual)
    {
        global 
$data;
        
        if(
$cod!=0)
            
Menu($cod);
            
        while(list(
$num,$val)=each($data))
        {
            if(
$val==$cod)
            {
                if(
$num==$actual)
                    echo 
"+";
                echo 
$num."<br>";
            }
        }
reset($data);
    }

    
Menu($op);   // Imprime menu
    
?>

en el anterior codigo conde hago consultas recursivas, en este caso solo trabajando con arrays, logo que muestre el arbol pero por separado.

Código:
+1
2
3

4
+5

+7
que sigunifica que 7 pertenece a 5 y 5 pertenece a 1, todos los signos + , pero lo que yo quiero que haga es el siguiente resultado:

Código:
+1
4

+5

+7

2
3

--------
+1
     4
    + 5
          +7
2
3
HE probado de varias formas no me resulta. ayudenme.
__________________
Mamani Calderón, Edwin Fredy
Ingeniería de Sistemas www.gruposistemas.com
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 11:52.