PHP - Como crear submenu de una categoría existente

   
Vista:
Imágen de perfil de Mosiah

Como crear submenu de una categoría existente

Publicado por Mosiah (40 intervenciones) el 28/10/2013 08:38:18
Hola estoy intentando agregar un submenu a una categoría existente en mi array, pero resulta que al hacerlo este repite la misma acción para todos las demás categorías del menú, lo que quiero es darle un submenu a una categoría individualmente, este es el código en cuestión:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$menu = array(
            array(
                'id' => 'inicio',
                'titulo' => 'Inicio',
                'enlace' => 'index.php',
                #'title'  => 'Inicio del Sitio'
                ),
 
            array(
                'id' => 'webhosting',
                'titulo' => 'Web Hosting',
                'enlace' => 'pagina.php',
                #'title'  => 'Web Hosting',
                ),
 
            array(
                  'id' => 'servicios',
                'titulo' => 'Servicios',
                'enlace' => 'pagina.php',
                #'title'  => 'Nuestros servicios'
                ),
            array(
                'id' => 'contacto',
                'titulo' => 'Contacto',
                'enlace' => 'pagina.php',
                #'title'  => 'Contáctenos'
                )
        );
 
for($i = 0; $i < count($menu); $i++)
{
        if(isset($_GET['seccion']) && $menu[$i]['id'] == $_GET['seccion'] ){
                $class_style = 'active';
        } else {
                $class_style = '';
        }
 
?>     			<li>
				<a  class="<?php echo $class_style; ?>" href="<?php echo $menu[$i]['enlace']; ?>?seccion=<?php echo $menu[$i]['id']; ?>">
                <?php  echo $menu[$i]['titulo']; ?> </a>
 
      <?php }
 
?>

Espero puedan ayudarme por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Como crear submenu de una categoría existente

Publicado por xve (5522 intervenciones) el 28/10/2013 10:05:45
Hola Mosiah, por lo que veo, parece que tu código es correcto...

Que problema tienes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mosiah

Como crear submenu de una categoría existente

Publicado por Mosiah (40 intervenciones) el 28/10/2013 10:44:43
Hola, mi problema es cuando agrego una sub categoría por ejemplo, aquí:

1
2
3
<li>
				<a  class="<?php echo $class_style; ?>" href="<?php echo $menu[$i]['enlace']; ?>?seccion=<?php echo $menu[$i]['id']; ?>">
                <?php  echo $menu[$i]['titulo']; ?> </a></li>

si agregará esto:

1
2
3
4
<li>
				<a  class="<?php echo $class_style; ?>" href="<?php echo $menu[$i]['enlace']; ?>?seccion=<?php echo $menu[$i]['id']; ?>">
                <?php  echo $menu[$i]['titulo']; ?> </a>
<ul><li><a href="#">Subcategoria</li></ul></li>

Pasaría que agregaría un sub categoria para todos los links creados con el array y for.

Lo que quiero es agregar una sub categoria a una opcion del array independiente.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Como crear submenu de una categoría existente

Publicado por xve (5522 intervenciones) el 28/10/2013 12:54:32
Hola Mosiah, me cuesta un poco entenderte... si quieres crear una subcategoria con otro array, deberías hacerlo al finalizar el bucle for, no? creando un nuevo bucle que recorra este nuevo array.

1
2
3
4
5
6
7
8
9
10
11
$menu=array(...);
for($i = 0; $i < count($menu); $i++)
{
    ....
}
# subcategorias
$menu2=array(...);
for($i = 0; $i < count($menu2); $i++)
{
    ....
}
Pero esto, no te creara las subcategorias debajo de las categorías...


Para poder poner las subcategorias debajo de las categorias, creo que podrías crear las subcategorias en el mismo array de valores, de esta manera, al mostrar las categorías, también podrás mostrar las subcategorias, algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
$menu = array(
    array(
        'id' => 'inicio',
        'titulo' => 'Inicio',
        'enlace' => 'index.php',
        'subcategoria'=>array(
            array(
                'id' => 'inicio2a',
                'titulo' => 'Inicio subcategoria A',
                'enlace' => 'index2a.php',
            ),
            array(
                'id' => 'inicio2b',
                'titulo' => 'Inicio subcategoria B',
                'enlace' => 'index2b.php',
            ),
        ),
    ),
 
    array(
        'id' => 'webhosting',
        'titulo' => 'Web Hosting',
        'enlace' => 'pagina.php',
        'subcategoria'=>array()
    ),
 
    array(
        'id' => 'servicios',
        'titulo' => 'Servicios',
        'enlace' => 'pagina.php',
        'subcategoria'=>array()
    ),
    array(
        'id' => 'contacto',
        'titulo' => 'Contacto',
        'enlace' => 'pagina.php',
        'subcategoria'=>array()
    )
);
 
echo "<ul>";
for($i = 0; $i < count($menu); $i++)
{
    if(isset($_GET['seccion']) && $menu[$i]['id'] == $_GET['seccion'] ){
        $class_style = 'active';
    } else {
        $class_style = '';
    }
 
    echo "<li>";
        echo "<a  class='".$class_style."' href='".$menu[$i]['enlace']."?seccion=".$menu[$i]['id']."'>".$menu[$i]['titulo']."</a>";
 
        # subcategorias
        if(count($menu[$i]["subcategoria"])>0)
        {
            echo "<ul>";
            for ($j=0;$j<count($menu[$i]["subcategoria"]);$j++)
            {
                echo "<li>";
                    echo "<a  class='".$class_style."' href='".$menu[$i]["subcategoria"][$j]['enlace']."?seccion=".$menu[$i]["subcategoria"][$j]['id']."'>".$menu[$i]["subcategoria"][$j]['titulo']."</a>";
                echo "</li>";
            }
            echo "</ul>";
        }
    echo "</li>";
}
echo "<ul>";
?>

Coméntanos, si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Mosiah

Como crear submenu de una categoría existente

Publicado por Mosiah (40 intervenciones) el 28/10/2013 22:37:15
Hola, muchas gracias por ayudarme a agregar las subcategorías, yo tenia la idea de hacerlo así, pero fracase en el intento, necesito estudiar más :D

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar