Webly: Menu com submenu dinâmico em css - Webly

Ir para

Regras para postagem no fórum

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de ASP.

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

Menu com submenu dinâmico em css Avaliar tópico: ***** 1 Votos

#1 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 02 outubro 2006 - 10:42

Bom, segue um exemplo de menu em css, criado com os dados que vem do banco de dados. Ele possibilita a criaçao de categorias e subcategorias. Há a possibilidade de expandir até para subcategoria da subcategorias, porem nao vem ao caso.

O menu foi desenvolvido com o codigo do artigo do Maujor - http://www.maujor.co...l/ddownmenu.php

Eu fiz a implementaçao da parte dinamica dele.


Bom, para utilizar este menu, voce precisa monta rum banco de dados com a seguinte estrutura:

Imagem


Algumas Obs.:

a variavel pagina = "produtos.asp" é a pagina q será direcionada ao clicar no item do menu.

A variavel id_sub_cat será passada por querystring para a outra pagina.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">
<head>
<title>Horizontal Drop Down Menus - Parte 3</title>
<script type="text/javascript">
function IEHoverPseudo() {

var navItems = document.getElementById("primary-nav").getElementsByTagName("li");

for (var i=0; i<navItems.length; i++) {
if(navItems[i].className == "menuparent") {
navItems[i].onmouseover=function() { this.className += " over"; }
navItems[i].onmouseout=function() { this.className = "menuparent"; }
}
}

}
window.onload = IEHoverPseudo;

</script>

<style type="text/css">

body { font: normal 62.5% verdana; }

ul#primary-nav,
ul#primary-nav ul {
margin: 0;
padding: 0;
width: 150px; /* Width of Menu Items */
border-bottom: 1px solid #ccc;
background: #fff; /* IE6 Bug */
font-size: 100%;
}

ul#primary-nav li {
position: relative;
list-style: none;
}

ul#primary-nav li a {
display: block;
text-decoration: none;
color: #777;
padding: 5px;
border: 1px solid #ccc;
border-bottom: 0;
}

/* Fix IE. Hide from IE Mac \*/
* html ul#primary-nav li { float: left; height: 1%; }
* html ul#primary-nav li a { height: 1%; }
/* End */

ul#primary-nav ul {
position: absolute;
display: none;
left: 149px; /* Set 1px less than menu width */
top: 0;
}

ul#primary-nav li ul li a { padding: 2px 5px; } /* Sub Menu Styles */

ul#primary-nav li:hover ul ul,
ul#primary-nav li:hover ul ul ul,
ul#primary-nav li.over ul ul,
ul#primary-nav li.over ul ul ul { display: none; } /* Hide sub-menus initially */

ul#primary-nav li:hover ul,
ul#primary-nav li li:hover ul,
ul#primary-nav li li li:hover ul,
ul#primary-nav li.over ul,
ul#primary-nav li li.over ul,
ul#primary-nav li li li.over ul { display: block; } /* The magic */

ul#primary-nav li.menuparent { background: transparent url(arrow.gif) right center no-repeat; }

ul#primary-nav li.menuparent:hover,
ul#primary-nav li.ove???d?r { background-color: #f9f9f9; }

ul#primary-nav li a:hover { color: #E2144A; }

</style>
</head>
<body>

<%
set cn = Server.CreateObject("ADODB.Connection")
cn.provider= "Microsoft.Jet.OLEDB.4.0"
cn.connectionstring=Server.MapPath("bd.mdb")
cn.open

pagina = "produtos.asp"


SQL = "SELECT * FROM categorias"
Set rs = cn.execute(sql)

response.write "<ul id='primary-nav'>"
   do while not rs.eof
		response.write "<li class='menuparent'><a href='java script:;'>"& rs("categoria_nome") &"</a>"
		
		SQL2 = "SELECT * FROM sub_categorias WHERE id_cat='"&rs("id_categoria")&"'"
		set rs2 = cn.execute(sql2)

		If Rs2.eof Then
			response.write "</li>"
		Else
			response.write "<ul>"
			do while not rs2.eof
				response.write "<li><a href='"&pagina&"?id_sub_cat="& rs2("id_sub_cat") &"'>" & rs2("nome_sub") & "</a></li>"
			   rs2.movenext
			loop
		response.write "</ul>"
		response.write "</li>"
		end if
		rs.movenext
	loop
response.write "</ul>"
%>
</body>
</html>


Quaquer duvida, é so falar.


Download do codigo: http://www.ievolutio...ub_dinamico.zip

Abraço.
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

#2 Membro offline   rafa_deck Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 4
  • Cadastrado: 08-maio 07

Postou 08 maio 2007 - 02:02

caramba cara... muito bom esse tuto.
estou fazendo um sistema de vendas... mais de amostra no caso.

e tem menus e submenus começando em 1 e terminando em 1.1.1.1.1
com topicos e tal.. acho que vc entende mais ou menos como é neh?!

estou pensando em fazer com banco de dados mas nao sei como vou armazenar os topicos... e tem mais tenho que fazer uma parte administrativa para que a pessoa possar criar mais um nivel no caso o "2" e seus subitens.

tem como se da uma luz ai!?
suIHuishusih

brigadao abraço!
0

#3 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 08 maio 2007 - 02:19

entao cara, a logica é simples, o dificil pra mim é fazer o menu em si.. eu nao manjo quase nada de css... tanto q usei o do maujor como base pra este...

eu vou ver se consigo pensar em algo e ja volto ae...
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

#4 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 08 maio 2007 - 02:25

entao.. aqui tem um menu 3 niveis q o micox fez... ai é so adaptar esse meu codigo em cima do menu e ja era!


menu: http://forum.ievolut...s...ost&p=19619

Pra colocar o terceiro nivel, vc precisa criar mais uma tabela no banco de dados, e associar a subcategorias a elas...
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

#5 Membro offline   rafa_deck Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 4
  • Cadastrado: 08-maio 07

Postou 08 maio 2007 - 04:33

Orra caras brigadao!
valeu mesmo..

eh que eh muito complicado. to fazendo bd agora... dps vo pega esse eskema e bota aki

valeu rapaziada .!!!
0

#6 Membro offline   rafa_deck Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 4
  • Cadastrado: 08-maio 07

Postou 09 maio 2007 - 08:22

cara pintou outra duvida.

nao vou mais fazer com css porque o chefe pediu e disse que é melhor fazer em paginas... ou seja, uma pagina abre o conteudo da outra.

eu dividi as paginas como.:

index.asp (vai listar todos os topicos)
c-a. asp (onde vai listar a segunda camada de topicos, senco C(categoria) e a(uma identificação qualquer de numero)
c-a-a.asp
c-a-a-a.asp
c-a-a-a-a.asp

"a" no caso é como se fossem os numeros.

partindo dai criei um form na index com redirecionamento para a pagina "a-c.asp" , resgatei a variavel, fiz a conexão com o banco de dados e coloquei a seguinte linha. "SELECT * FROM sub_categorias WHERE id_categoria = "&id&" " ...

Criei nessa mesma pagina ("c-a.asp") um form de redirecionamento para a pagina "c-a-a.asp". e fiz a mesma coisa que a anterior. só que quando eu seleciono alguma coisa da segunda categoria para ir para a terceira ele chama tudo que tem como sub_categoria 1.

Quem puder da uma ajuda eu agradeço! e desculpa escreve tanto x]
0

#7 Membro offline   rafa_deck Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 4
  • Cadastrado: 08-maio 07

Postou 11 maio 2007 - 01:10

Ow alguem me ajuda por favor...
ehehehe
vlw.
0

#8 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 11 maio 2007 - 01:22

mas como vc criou a estrutura do banco de dados?

eu penso q deve estar assim:

cat , sub_cat, sub_cat1, sub_cat2 ... e assim por diante, para q quando formos fazer os selects a gente vai filtrando isso...
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

#9 Membro offline   rumao Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 3
  • Cadastrado: 14-maio 07

Postou 17 dezembro 2007 - 10:07

Bom dia, muito bom este seu tutorial. Eu acrescentei ao banco de dados uma tabela chamada produtos e cadastrei alguns ítens associando a sus-categoria, ficou assim.
id_produto id_sub_cat produto
1 1 CD U2
2 1 CD GUNS AND ROSES
3 2 CD BOB MARLEY

e criei uma página chamada produtos.asp só para fazer um teste ever se ela está sendo chamada ao clicar em uma opção do menu. até aí tudo blz.
gostaria de saber como ao clicar por exemplo na opção de CD Rock trazer os ítens associados a ela como no exemplo acima. o código tem que ser colocado na página produtos.asp ??? e como definir nas opções de menu estas opeções ??
desde já agradeço pela atenção.
0

#10 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 17 dezembro 2007 - 10:38

nao entendi sua duvida.

tipo, o menu ficaria sendo:

cd - rock
mpb
jazz

dvd - terror
ação
suspense

e na página de produtos, vc faria um select +/- assim:

sql = "Select * from produtos where sub_cat_id = '"&request.querystring("id_sub_cat")&"'"

estou mandando selecionar todos os produtos onde a sub categoria é igual a que selecionamos no menu.

qq duvida, é so falar.
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

#11 Membro offline   andretorres Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 1
  • Cadastrado: 22-maio 08

Postou 22 maio 2008 - 02:00

Fala meus amigos...

tenho a totalecommerce e tenho uma dúvida...

Geralmente o menu principal são imagens mapeadas... já vi rolando por ai menus dinamicos...

O que qro dizer ? a pessoa entra no admin da loja.. cria uma sessao... e logo gera um BOTAO com imagem de fundo e seu separador no tamanho do texto... isso facilitaria pq a cada sessao que o cliente quiser mudar nós teremos q editar a imagem.
queremos algo dinamico... criou no admin e PRONTO.. ta lá a imagem na pagina principal.

Alguma dica ?
0

#12 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 22 maio 2008 - 08:41

cara, eu nao me lembro de como era o totalecommerce, e nem sei se é facil mudar coisas neles, mas acho viavel vc fazer um botao padrão (cores,borda, etc) e aplicar no css e usar esse esquema dinamico que expliquei no inicio do topico.
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)