Shopping Hospedagem Fórum Contato
     
   O portal do desenvolvedor ASP Florianópolis-SC, Sábado - 18 de Novembro de 2017  
Busca

Menu do site
Efetuar Login
Usuário:

Senha:

 Esqueceu a senha?
Login automático

 Cadastre-se
Criando um menu suspenso automatico
Avaliações: 56   -   Minha nota: Média Geral: 2  

Através de uma base de dados com duas tabelas relacionadas, por exemplo, Categoria › Subcategoria podemos criar automaticamente com o ASP um menu suspenso igual aos que existem em vários programas, existente até mesmo neste browser.

Veja abaixo a base de dados e o menu criado com ela pelo script deste artigo

Base de Dados Menu criado automaticamente
Artigos
Tutoriais
Códigos
Downloads
Fórum
Hospedagem
Shopping


Para chamar as funções do código acima que retornam as propriedades da imagem utilize o seguinte código:

1
2
3
4
5
6
7
8
9
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<html>
<head>
<title>Menu Suspenso</title>
<style type="text/css">
.estilo1{
font-family: Arial;
font-size: 12px;
background: whitesmoke;
color: black;
}
.estilo2{
font-family: Arial;
font-size: 12px;
background: gray;
color: white;
}
</style>
</head>
<body>

<%
Dim StrCon, objCon, ComandoSQL, objRS, objRS2

StrCon = "Data Source=C:\menu.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open StrCon

ComandoSQL = " SELECT * FROM categorias ORDER BY titulo ASC"
Set objRS = objCon.Execute(ComandoSQL)
%>
<table border="1" bordercolor="silver" cellpadding="3" cellspacing="0">
<%
If Not objRS.EOF Then
While Not objRS.EOF
%>
<tr>
<td class=estilo1 onMouseOver="this.className='estilo2'; layer1_menu_<%=objRS("id")%>.style.display=''" onMouseOut="this.className='estilo1'; layer1_menu_<%=objRS("id")%>.style.display='none'">
<span style="width:100%;cursor:hand" onClick="window.open('<%=Request.ServerVariables("SCRIPT_NAME")%>?categoria=<%=objRS("id")%>','_self')">
<%=objRS("titulo")%>
</span>
<%
ComandoSQL = " SELECT * FROM subcategorias WHERE categoria=" & objRS("id") & " ORDER BY titulo ASC"
Set objRS2 = objCon.Execute(ComandoSQL)
%>
<div id="layer1_menu_<%=objRS("id")%>" style="position:absolute; z-index:1; display: none" onMouseOut="this.style.display='none'">
<%
If Not objRS2.EOF Then
%>
<table border="1" bordercolor="silver" cellpadding="3" cellspacing="0">
<%
While Not objRS2.EOF
%>
<tr>
<td class=estilo1 onMouseOver="this.className='estilo2'" onMouseOut="this.className='estilo1'">
<span style="width:100%;cursor:hand" onClick="window.open('<%=Request.ServerVariables("SCRIPT_NAME")%>?categoria=<%=objRS("id")%>&subcategoria=<%=objRS2("id")%>','_self')">
<%
Response.Write objRS2("titulo")
%>
</span>
</td>
</tr>
<%
objRS2.MoveNext
Wend
%>
</table>
<%
End If
%>
</div>
<%
Set objRS2 = Nothing
%>
</td>
</tr>
<%
objRS.MoveNext
Wend
End If
%>
</table>

<%
objRS.Close
Set objRS = Nothing
Set ComandoSQL = Nothing

objCon.Close
Set objCon = Nothing
Set StrCon = Nothing
%>

</body>
</html>
 


Este exemplo utiliza CSS para definir as configurações do menu, por exemplo quando o mouse é movido sobre o menu, o mesmo muda de cor, para alterar as cores da forma que desejar, basta editar os estilos no inicio da página.

A página que será aberta quando clicado em algum item do menu será a mesma página, porêm com a categoria e ou subcategoria clicada informada na URL.

Caso queira que outra página seja aberta quando clicado no menu, substitua no codigo <%=Request.ServerVariables("SCRIPT_NAME")%> pelo nome ou endereço da página desejada.


Clique aqui para fazer o download completo deste exemplo.


Espero que este exemplo lhe seja útil.


Fabiano Dias
fabiano@superasp.com.br

www.superasp.com.br
O portal do desenvolvedor ASP




SuperASP do Brasil Ltda

03.066.522/0001-84
Av. Rio Branco 433 - Centro - Florianopolis - SC
Contato

© 2001/2008 - Superasp do Brasil Ltda. Todos os direitos reservados