PHP - Menu desplegable

   
Vista:

Menu desplegable

Publicado por Alberto (2 intervenciones) el 19/12/2014 19:16:26
Buenas,

He creado un menu desplegable por categorías que muestra subcategorías.

Quería hacer algo similar pero esta vez mostrando de la A a la Z, desplegando en cada letra las subcategorías que empiecen por dicha letra, pero lo estoy pasando mal aunque el planteamiento no parece ser demasiado complicado.

Esta es la forma en la que he hecho el desplegable de categoría

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
foreach( $header_action_categories as $row ) {
	$hijos = NULL;
	$list = NULL;
	echo "<ul class='dropdown'>";
	$list .= "<li>" . $row['name'];
	foreach( $header_action_subcategories as $row2 ) {
		if ( $row2['parent_id'] == $row['id'] ) {
			$hijos .= "<li><a href=".$row2['full_friendly_url'].">".$row2['name']."</a></li>";
			}
		}
	}
	if ( isset( $hijos ) && $hijos != NULL )	{
		$list .= "<ul>".$hijos."</ul>";
	}
	echo $list."</li></ul>";
}

Desde $header_action_categories recorro las categorías y $header_action_subcategories las subcategorías, mostrándolas con un desplegable mediante <ul class='dropdown'>.

Para el menú de la A a la Z he hecho esto, pero obviamente no está mostrando el menú como debería:

1
2
3
4
5
6
7
8
9
10
11
for ($i="A" ; $i!="AA" ; $i++) {
echo "<ul class='dropdown'>";
	$list .= "<li>" . $i;
	foreach( $header_action_subcategories as $row2 ) {
			$letra_ini = $row2['name'].substr($row2['name'],0,1);
			$letra_ini = substr($letra_ini,0,1);
				if ($letra_ini == $i){
					echo $list .= "<ul><a href=".$row2['full_friendly_url'].">".$row2['name']."</a></ul></li></ul>";
				}
	}
}

¿Alguien puede echarme una mano?

Gracias!
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

Menu desplegable

Publicado por Alberto (2 intervenciones) el 19/12/2014 20:23:42
Creo que voy por el buen camino:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for ($i="A" ; $i!="AA" ; $i++) {
	echo "<ul class='dropdown'>";
	$list .= "<li>" . $i;
	foreach( $header_action_subcategories as $row2 ) {
			$letra_ini = $row2['name'].substr($row2['name'],0,1);
			$letra_ini = substr($letra_ini,0,1);
				if ($letra_ini == $i){
					$hijos .= "<li><a href=".$row2['full_friendly_url'].">".$row2['name']."</a></li>";
				}
	}
	if ( isset( $hijos ) && $hijos != NULL )	{
		$list .= "<ul>".$hijos."</ul>";
	}
	echo $list."</li></ul>";
}

Pero me está concatenando tanto $i como el contenido de cada desplegable ¿como podría hacer para que mostrase solo los que comienzan en cada letra sin que me muestre los anteriores?

082b6fc5c70e36b73d1ebcfcaa1272e2o
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

Menu desplegable

Publicado por xve (5523 intervenciones) el 20/12/2014 10:43:17
Hola Alberto, he visto la imagen y tu código, y no me queda claro que quieres hacer...

Exactamente, como quieres que se muestre?
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

Menu desplegable

Publicado por Gonzalo (339 intervenciones) el 21/12/2014 21:33:59
desafortunadamente no puedo subir imagenes, cual es tu correo?, o mandame un correo

gonzalo1163@hotmail.com
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