Foros del Web » Programando para Internet » PHP » CodeIgniter »

Menu abecedario desplegable

Estas en el tema de Menu abecedario desplegable en el foro de CodeIgniter en Foros del Web. Buenos días, 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 ...
  #1 (permalink)  
Antiguo 17/12/2014, 04:47
Avatar de Goullak  
Fecha de Ingreso: junio-2014
Mensajes: 32
Antigüedad: 9 años, 10 meses
Puntos: 0
Menu abecedario desplegable

Buenos días,

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 las estoy pasando canutas aunque el planteamiento no parece ser demasiado complicado.

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

Código:
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:

Código:
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 un cable?

Gracias!
  #2 (permalink)  
Antiguo 19/12/2014, 13:22
Avatar de Goullak  
Fecha de Ingreso: junio-2014
Mensajes: 32
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Menu abecedario desplegable

Creo que voy por el buen camino:

Código:
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? Abajo pongo la imagen del desplegable:

http://subefotos.com/ver/?082b6fc5c70e36b73d1ebcfcaa1272e2o.png

Gracias!

Etiquetas: abecedario, desplegable
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 01:27.