Foros del Web » Programando para Internet » ASP Clásico »

Xd- Necesito Ayuda Con Menus Desplegables.

Estas en el tema de Xd- Necesito Ayuda Con Menus Desplegables. en el foro de ASP Clásico en Foros del Web. Hola amigos, el otro día puse un tema referenciado al titulo indicado y no tengo respuesta alguna. he leido en las FAQ, en multitud de ...
  #1 (permalink)  
Antiguo 03/12/2005, 06:13
 
Fecha de Ingreso: julio-2005
Mensajes: 137
Antigüedad: 18 años, 11 meses
Puntos: 0
Xd- Necesito Ayuda Con Menus Desplegables.

Hola amigos, el otro día puse un tema referenciado al titulo indicado y no tengo respuesta alguna.
he leido en las FAQ, en multitud de foros, he revisado el codigo por activa y por pasiva y la verdad es que estoy en el mismo punto, no pudiendo continuar.

Ayuda porfavor.....




********* este el el mensaje original *****
Hola amigos.

Tengo el siguiente error y no se pq esta fallando.

Tengo una tabla en ACCES dónde guargo las categorias (tabla categorias) y otra donde relaciono las categorias con las subcategorias de estas (tabla subcategoria).

ej: [TABLA CATEGORIA] valor JABON
[TABLA SUBCATEGORIA] valor PIELES SECAS

La idea es hacer un menú desplegable, mostrando inicialmente el contenido de la tabla Categorias y una vez, hacienco "clik" encima, que muestre todas las subcategorias de la opción seleccionada.
Me funciona pero solo me muestra el valor de la subcategoria del primer registro. NO SE SI QUEDA CLARO...

OS ADJUNTO CODIGO
*********************

SQLusua1="SELECT DISTINCT categoria1 FROM categorias "
SQLusua2="SELECT categoria1,categoria2 FROM subcategoria "
set RSusua1=ConexionBd1.execute(SQLusua1)
set RSusua2=ConexionBd1.execute(SQLusua2)


While Not RSusua1.EOF
emenu=Rsusua1.fields("categoria1")
%>
<!--------INICIO MENU 1---------->
<div class="mainDiv" state="0">
<div class="topItem" classOut="topItem" classOver="topItemOver" onMouseOver="Init(this);" >
<p class="b01"><img src="images/e02.gif" width="6" height="5" alt="" border="0" align="absmiddle">&nbsp;&nbsp;<%=Rsusua1.fields("c ategoria1")%></div>
<div class="dropMenu" >
<div class="subMenu" state="0">
<%While Not RSusua2.EOF
If rsusua1.fields("categoria1")=rsusua2.fields("categ oria1") then%>
<span class="subItem" classOut="subItem" classOver="subItemOver"><a href="http://LOQUECORRESPONDA"><%=Rsusua2.fields("categoria2")% ></a></span><BR />
<%end if
RSusua2.Movenext
Wend%>
</P>
</div>
</div>
</div>

<div align="center"><img src="images/hr01.gif" width="137" height="3" alt="" border="0"></div>
<%
RSusua1.Movenext%>
<%Wend
RSusua1.CLOSE
RSusua2.CLOSE
Set RSusua1 = Nothing
ConexionBD1.Close
Set ConexionBD1 = Nothing
%>
**********************************

El menú de las catagorias iniciales lo muestra bien, el problema es que solo funciona con el primer registro, dónde si me muestra su subcategorias, del resto de opciones de menú no muestra nada.


Si alguien sabe y quiere ayudarme, se agradece.

Gracias por anticipado, saludos
  #2 (permalink)  
Antiguo 03/12/2005, 06:39
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 22 años
Puntos: 2
Puede ser un error javascript, ¿Pondrías el código fuente (html) generado por la página para esta sección?

Hasta luego
__________________
Sergio
  #3 (permalink)  
Antiguo 03/12/2005, 09:29
 
Fecha de Ingreso: julio-2005
Mensajes: 137
Antigüedad: 18 años, 11 meses
Puntos: 0
HEREJE, te pongo el codigo relacionado con javasript. Espero que te sirva para ayudarme

ARCHIVO: MENU.JS
*******************
var TIMER_SLIDE = null;
var OBJ_SLIDE;
var OBJ_VIEW;
var PIX_SLIDE = 10; //this is the amount of slide/DELAY_SLIDE
var NEW_PIX_VAL;
var DELAY_SLIDE = 30; //this is the time between each call to slide
var DIV_HEIGHT = 22; //value irrelevant
var SUB_MENU_NUM =0;
var RE_INIT_OBJ = null;
var bMenu = document.getElementById("curMenu");
var MainDiv,SubDiv

//DD added code
document.write('<div id="tempcontainer" class="mainDiv" style="visibility: hidden; position: absolute"></div>')

function Init(objDiv)
{
if (TIMER_SLIDE == null)
{
SUB_MENU_NUM = 0;
MainDiv = objDiv.parentNode;
SubDiv = MainDiv.getElementsByTagName("DIV").item(0);
SubDiv.onclick = SetSlide;

OBJ_SLIDE = MainDiv.getElementsByTagName("DIV").item(1)
OBJ_VIEW = OBJ_SLIDE.getElementsByTagName("DIV").item(0);

document.getElementById("tempcontainer").innerHTML =MainDiv.getElementsByTagName("DIV").item(2).inner HTML //DD added code
DIV_HEIGHT=document.getElementById("tempcontainer" ).offsetHeight //DD added code

for (i=0;i<OBJ_VIEW.childNodes.length;i++)
{
if (OBJ_VIEW.childNodes.item(i).tagName == "SPAN")
{
SUB_MENU_NUM ++;
OBJ_VIEW.childNodes.item(i).onmouseover= ChangeStyle;
OBJ_VIEW.childNodes.item(i).onmouseout= ChangeStyle;
}
}

NEW_PIX_VAL = parseInt(MainDiv.getAttribute("state"));
}

}
function SetSlide()
{
if (window.TIMER_SLIDE) clearInterval(TIMER_SLIDE) //DD added code
if (TIMER_SLIDE == null && this.parentNode == MainDiv)
TIMER_SLIDE = setInterval('RunSlide()', DELAY_SLIDE);
else
{
RE_INIT_OBJ = this;
setTimeout('ReInit()', 200);
}
}

function ReInit(obj)
{
Init(RE_INIT_OBJ);
TIMER_SLIDE = setInterval('RunSlide()', DELAY_SLIDE);
RE_INIT_OBJ = null;
}

function RunSlide()
{

if (OBJ_VIEW.getAttribute("state") == 0)
{

NEW_PIX_VAL += PIX_SLIDE;
OBJ_SLIDE.style.height = NEW_PIX_VAL;

if (NEW_PIX_VAL >= DIV_HEIGHT) //DD modified code
{
clearInterval(TIMER_SLIDE);
TIMER_SLIDE = null;
OBJ_VIEW.style.display = 'inline';
OBJ_VIEW.setAttribute("state","1")
MainDiv.setAttribute("state",NEW_PIX_VAL);
}
} else
{
OBJ_VIEW.style.display = 'none';
NEW_PIX_VAL -= PIX_SLIDE;
if(NEW_PIX_VAL > 0)OBJ_SLIDE.style.height = NEW_PIX_VAL;
if (NEW_PIX_VAL <= 0)
{
NEW_PIX_VAL = 0;
OBJ_SLIDE.style.height = NEW_PIX_VAL
clearInterval(TIMER_SLIDE);
TIMER_SLIDE = null;
OBJ_VIEW.setAttribute("state","0")
MainDiv.setAttribute("state",NEW_PIX_VAL);
}
}
}

function ChangeStyle()
{
if (this.className == this.getAttribute("classOut"))
this.className = this.getAttribute("classOver");
else
this.className = this.getAttribute("classOut");
}



********************
FICHERO ASP (SOLO PONGO EL CODIGO RELACIONADO A LOS MENUS, LAS DEMAS TABLAS DE LA PAG. LAS IGNORO
*************************
<body>
<script language="JavaScript" type="text/javascript" src="menu.js"></script>
dim conexionBd1,rsusua1,sqlusua1,emenu,opcion,sqlusua2 ,rsusua2,contador1
Set ConexionBd1=Server.CreateObject("ADODB.Connection" )
SQLusua1="SELECT DISTINCT categoria1 FROM categorias "
SQLusua2="SELECT categoria1,categoria2 FROM subcategoria "
conexionBd1.Open"DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& server.MapPath("XXXX/YYY.mdb"),3,1
set RSusua1=ConexionBd1.execute(SQLusua1)
set RSusua2=ConexionBd1.execute(SQLusua2)
contador1=0

While Not RSusua1.EOF

emenu=Rsusua1.fields("categoria1")

%>

<!--------INICIO MENU 1---------->
<div class="mainDiv" state="0">
<div class="topItem" classOut="topItem" classOver="topItemOver" onMouseOver="Init(this);" >
<p class="b01"><img src="images/e02.gif" width="6" height="5" alt="" border="0" align="absmiddle">&nbsp;&nbsp;<%=Rsusua1.fields("c ategoria1")%></div>
<div class="dropMenu" >

<div class="subMenu" state="0">


<%While Not RSusua2.EOF
If rsusua1.fields("categoria1")=rsusua2.fields("categ oria1") then%>
<span class="subItem" classOut="subItem" classOver="subItemOver"><a href="http://www.dynamicdrive.com"><%=Rsusua2.fields("categoria 2")%></a></span><BR />
<%end if

RSusua2.Movenext

Wend%>

</P>
</div>
</div>
</div>

<div align="center"><img src="images/hr01.gif" width="137" height="3" alt="" border="0"></div>

<%

RSusua1.Movenext%>

<%Wend
RSusua1.CLOSE
RSusua2.CLOSE
Set RSusua1 = Nothing
ConexionBD1.Close
Set ConexionBD1 = Nothing
%>

************************

ESPERO QUE TE SIRVA PARA PODER AYUDARME, GRACIAS DE TODAS MANERAS
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 22:41.