Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucasmoraes

[Resolvido] Menu dropdown dinamico em asp

Recommended Posts

Olá amigos,

estou com uma duvida, eu nunca tinha feito menus daqueles dropdowns, bom peguei um script pra analizar la do maujor bem simples e para oque eu preciso ele esta ok...

so que preciso que este menu funcione dinamicamente.

eu ate fiz aparecer as categorias, mas as subcategorias nao funcionam nao aparecem aparece so a ultima categoria...

alguem ai tem um exemplo de menu dropdown dinamico???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é esse script ?

utilizei o codigo que vi no site do maujor vou postalo aqui, so nao sei como fazer o menu ficar dinamico...

este codigo vem do maujor entao vou postalo como eu tentei fazer mais o menos...

<ul> 

   <li><a href="#">aqui vem as categorias</a> 
     <ul> 
       <li><a href="#">e aqui vem as sub categorias</a></li> 
     </ul> 

 </ul>

agora os css

ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
}
       ul li {
position: relative;
}
       li ul {
position: absolute;
left: 149px;
top: 0;
display: none;
}
       ul li a {
display: block;
text-decoration: none;
color: #777;
background: #fff;
padding: 5px;
border: 1px solid #ccc;
border-bottom: 0;
}
       /* Fix IE. Hide from IE Mac \*/
       * html ul li { float: left; }
       * html ul li a { height: 1%; }
      /* End */
      ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
border-bottom: 1px solid #ccc;
}
       li:hover ul { display: block; }
       li:hover ul, li.over ul { 
display: block; }

 

bom este e o codigo puro... gostaria de tornalo dinamico tenho uma tabela em meu banco com as categorias outra com as subcategorias e outra com os produtos que preciso exibir....

ai vem minha duvida como tornar este menu dinamico pegando os dados das categorias e subcategorias e montando o dropdown com os dados do banco de dados...

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos supor que tenha uma tabela com as categorias e subcategorias cadastras, algo como <id><categoria><subcategoria> primeiro criamos um select distinct (por exemplo) para pegar as categorias.

 

Criamos um loop nesse select e dentro do loop criamos um novo select só com as subcategorias agora.

Ficaria algo assim:

sql1="select distinct categoria from tabela"
set rs=conn.execute(sql1)
while not rs.eof
response.write "<ul>"
      response.write "<li><a href='#'>"&rs("categoria")&"</a>"
     response.write"<ul>"
     sql2="select subcategoria from tabela where categoria="&rs("categoria")
     set rs2=conn.execute(sql2)
     while not rs2.eof
    response.write "<li><a href='#'>"&rs2("subcategoria")&"</a></li>"
    response.write "</ul>"
    loop
response.write "</ul>"
loop

 

É mais ou menos essa a ideia :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, vou testar o codigo e retorno se funfar vlww

 

amigo da forma que você me passou eu testei aqui e nao funcionou nao mas olha como eu estava tentando fazer...

<!--#include file="caminho.asp"-->
<style type="text/css">
<!--
ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
}
ul li {
position: relative;
}
li ul {
position: absolute;
left: 149px;
top: 0;
display: none;
}
ul li a {
display: block;
text-decoration: none;
color: #777;
background: #fff;
padding: 5px;
border: 1px solid #ccc;
border-bottom: 0;
}
/* Fix IE. Hide from IE Mac \*/
* html ul li { float: left; }
* html ul li a { height: 1%; }
/* End */
ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
border-bottom: 1px solid #ccc;
}
li:hover ul { display: block; }
li:hover ul, li.over ul { 
display: block; }
-->
</style>
<script type="text/javascript">
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
 }
 node.onmouseout=function() {
 this.className=this.className.replace
(" over", "");
  }
  }
 }
}
}
window.onload=startList;
</script>
<%
Set conn = Server.CreateObject("ADODB.Connection")
Set objRec1 = Server.CreateObject("ADODB.Recordset")
conn.CursorLocation = 3
conn.Open dsn
sqlmenu = "SELECT * FROM categorias"
objRec1.open sqlmenu,conn
While Not objRec1.EOF
%>
<ul id="nav">

   <li><a href="<%=objRec1("linkcategoria")%>"><%= objRec1("nomecategoria")%></a> 
     <%
  Set objRec2 = Server.CreateObject("ADODB.Recordset")
  sqlsubmenu = "SELECT * FROM subcategorias"
  objRec2.open sqlsubmenu,conn
   While Not objRec2.EOF
  %>
     <ul> 
       <li><a href="<%=objRec2("linksubcategoria")%>"><%Response.Write objRec2("nomesubcategoria")%></a></li> 
     </ul> 
     <%
     objRec2.MoveNext
     Wend
  objRec2.Close 
	  %>
   </li>


 </ul>
 <%
 objRec1.MoveNext
 Wend
 objRec1.Close  
 %>

 

desta forma ele ate chega a exibir o menu mas nao sei como faco a parte de submenu ele ate esta aparecendo mas ele aparece apenas o ultimo registro de uma das categorias ele nao separa as categorias tem como você me ajudar em meu codigo ...

bom se quiser ver ele funcionando pra ter uma ideia ele ta num site que to montando >>> http://highnetinformatica.com.br/novaera/

a parte que exibe o menu principal ele exibe direito agora o submenu que vem de outra tabela ele esta mandando para todos os menus o mesmo submenu nao esta separando por categorias e tambem aparece apenas o ultimo registro ...

se puder me ajudar rsrs vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

este script faz o preenchimento de um combo e pega o valor do combo preenchido pra fazer o outro combo, tipo:

 

um combo país e outro combo estado

 

as tabelas saun:

 

pais- com os campos

cod_pais - chave primária

nome

 

estado -c om os campos

cod_pais - chave estrangeira

cod_estado

nome

 

as tabelas possuem relacionamento de um para muitos

<% Option Explicit 

'declaro as var 
dim var1,var2,var3,....., etc 
'recupero as var 
varpais=request.querystring("pais") 
'crioa a conexao 
%> 

<!--# include file="conexao/conexao.asp"--> 

<% 
'abro a conexao 
Call abre_conexao 
'crio o rs 
set rspais=server.createobject("ADODB.Recordset") 
'crio a SQL 
SQLpais="SELECT * FROM pais ORDER BY nome" 
rspais.open SQLpais,conexao,1,3 
%> 


'aki vou criar o combo, onde no evento onchange ele irá enviar o value do combo pais para a mesma pag, para eu recuperar o codigo do pais e assim preencher o combo estado. 

<form action="inserirend_action.asp" method="post"name="frmteste"> 
<select name="pais" size="1" Onchange="window.navigate('pag_atual.asp?pais='+frmteste.pais.value)"> 

<% while not rspais.eof%> 
<option value="<%=rs("cod_pais")%>"> 
<% if varpais=rs("pais") then 
response.write("Selecionado") 
end if%> 
<%=rs("nome")%> 
</option> 
<% rspais.movenext 
wend%> 
</select> 
<% set rspais=nothing%> 

'aki crio o combo estado 

<select name="estado"size="1"> 
if request("pais") ="" then%> 
<option value=""> selecione um pais 
<%else 
'crio o SQL estado 
SQLestado="Select * from estado where cod_pais="&varpais&" Order by nome" 
'crio o rsestado 
set rsestado=server.createobject("ADODB.Recordset") 
rsestado.open SQLestado,conexao,1,3 
<%while not rsestado.eof%> 
<option value="<%=rsestado("cod_estado")%>"> 
<%=rs("nome")%> 
</option> 
<%rs.movenext 
wend 
end if%> 
</select> 
<% set rsestado=nothing%> 
<% 'fecho a conexao 
call fecha_conexao%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

este script faz o preenchimento de um combo e pega o valor do combo preenchido pra fazer o outro combo, tipo:

 

um combo país e outro combo estado

 

as tabelas saun:

 

pais- com os campos

cod_pais - chave primária

nome

 

estado -c om os campos

cod_pais - chave estrangeira

cod_estado

nome

 

as tabelas possuem relacionamento de um para muitos

<% Option Explicit 

'declaro as var 
dim var1,var2,var3,....., etc 
'recupero as var 
varpais=request.querystring("pais") 
'crioa a conexao 
%> 

<!--# include file="conexao/conexao.asp"--> 

<% 
'abro a conexao 
Call abre_conexao 
'crio o rs 
set rspais=server.createobject("ADODB.Recordset") 
'crio a SQL 
SQLpais="SELECT * FROM pais ORDER BY nome" 
rspais.open SQLpais,conexao,1,3 
%> 


'aki vou criar o combo, onde no evento onchange ele irá enviar o value do combo pais para a mesma pag, para eu recuperar o codigo do pais e assim preencher o combo estado. 

<form action="inserirend_action.asp" method="post"name="frmteste"> 
<select name="pais" size="1" Onchange="window.navigate('pag_atual.asp?pais='+frmteste.pais.value)"> 

<% while not rspais.eof%> 
<option value="<%=rs("cod_pais")%>"> 
<% if varpais=rs("pais") then 
response.write("Selecionado") 
end if%> 
<%=rs("nome")%> 
</option> 
<% rspais.movenext 
wend%> 
</select> 
<% set rspais=nothing%> 

'aki crio o combo estado 

<select name="estado"size="1"> 
if request("pais") ="" then%> 
<option value=""> selecione um pais 
<%else 
'crio o SQL estado 
SQLestado="Select * from estado where cod_pais="&varpais&" Order by nome" 
'crio o rsestado 
set rsestado=server.createobject("ADODB.Recordset") 
rsestado.open SQLestado,conexao,1,3 
<%while not rsestado.eof%> 
<option value="<%=rsestado("cod_estado")%>"> 
<%=rs("nome")%> 
</option> 
<%rs.movenext 
wend 
end if%> 
</select> 
<% set rsestado=nothing%> 
<% 'fecho a conexao 
call fecha_conexao%>

 

amigo obrigado pela ajuda e atenção.....

consegui fazer funcionar...

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.