Combos dependientes

22/07/2005 - 11:23 por Antonio | Informe spam
Hola.
LLevo tiempo buscando la manera de hacer que dos combos
que tengo en un formulario sean dependientes uno de otro.

Se que hay que usar Javascript, pero hay alguna manera
sencilla de que esto funcione. Todo lo que he visto es
complicadisimo.

Salu2

Preguntas similare

Leer las respuestas

#1 Antonio
22/07/2005 - 15:13 | Informe spam
Gracias por responder.
Efectivamente yo he hecho algo similar, pero no consigo que
me funcione.
Me explico:
Tengo un formulario principal que va a otro fichero .asp y
que no puedo cambiar, entonces lo que he hecho es meter
dentro de un form (de nombre frmAnio) el combo y luego hago
lo que tu indicabas:
<select name="mianio" onChange="document.frmAnio.submit()">"

pero cada vez que cambio en el formulario me indica lo
siguiente:
document.frmAnio no es un objeto.

Que puede pasar??
Salu2


Dependientes en que sentido?

Si lo que quieres es que cuando selecciones uno, en el


otro se muestren
otras propiedades, no necesitas mucho JavaScript para hacerlo.

Por ejemplo:

<select name="Combo1"


onChange="document.NombreFormulario.submit()">
<option
</select>

<select name="Combo2">
<%
'Suponiendo que aqui haces una consulta
sql = "select * form Tabla where id=" &


request.form("Combo1")
...
...
do while not rst.eof
%>
<option .
<%
rst.movenext
loop
%>
</select>

Creo que por ahi va la cosa.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
"Antonio" escribió


en el mensaje
news:06d301c58e9f$06857140$
Hola.
LLevo tiempo buscando la manera de hacer que dos combos
que tengo en un formulario sean dependientes uno de otro.

Se que hay que usar Javascript, pero hay alguna manera
sencilla de que esto funcione. Todo lo que he visto es
complicadisimo.

Salu2




.

Respuesta Responder a este mensaje
#2 Matias Iacono
22/07/2005 - 17:18 | Informe spam
Dependientes en que sentido?

Si lo que quieres es que cuando selecciones uno, en el otro se muestren
otras propiedades, no necesitas mucho JavaScript para hacerlo.

Por ejemplo:

<select name="Combo1" onChange="document.NombreFormulario.submit()">
<option
</select>

<select name="Combo2">
<%
'Suponiendo que aqui haces una consulta
sql = "select * form Tabla where id=" & request.form("Combo1")
...
...
do while not rst.eof
%>
<option .
<%
rst.movenext
loop
%>
</select>

Creo que por ahi va la cosa.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
"Antonio" escribió en el mensaje
news:06d301c58e9f$06857140$
Hola.
LLevo tiempo buscando la manera de hacer que dos combos
que tengo en un formulario sean dependientes uno de otro.

Se que hay que usar Javascript, pero hay alguna manera
sencilla de que esto funcione. Todo lo que he visto es
complicadisimo.

Salu2
Respuesta Responder a este mensaje
#3 Matias Iacono
22/07/2005 - 18:43 | Informe spam
Puedes colocar todo el codigo?

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
"Antonio" escribió en el mensaje
news:022301c58ebf$2dc4d820$
Gracias por responder.
Efectivamente yo he hecho algo similar, pero no consigo que
me funcione.
Me explico:
Tengo un formulario principal que va a otro fichero .asp y
que no puedo cambiar, entonces lo que he hecho es meter
dentro de un form (de nombre frmAnio) el combo y luego hago
lo que tu indicabas:
<select name="mianio" onChange="document.frmAnio.submit()">"

pero cada vez que cambio en el formulario me indica lo
siguiente:
document.frmAnio no es un objeto.

Que puede pasar??
Salu2


Dependientes en que sentido?

Si lo que quieres es que cuando selecciones uno, en el


otro se muestren
otras propiedades, no necesitas mucho JavaScript para hacerlo.

Por ejemplo:

<select name="Combo1"


onChange="document.NombreFormulario.submit()">
<option
</select>

<select name="Combo2">
<%
'Suponiendo que aqui haces una consulta
sql = "select * form Tabla where id=" &


request.form("Combo1")
...
...
do while not rst.eof
%>
<option .
<%
rst.movenext
loop
%>
</select>

Creo que por ahi va la cosa.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E25786


8B7
"Antonio" escribió


en el mensaje
news:06d301c58e9f$06857140$
Hola.
LLevo tiempo buscando la manera de hacer que dos combos
que tengo en un formulario sean dependientes uno de otro.

Se que hay que usar Javascript, pero hay alguna manera
sencilla de que esto funcione. Todo lo que he visto es
complicadisimo.

Salu2




.

Respuesta Responder a este mensaje
#4 Sandra y María Claudia
25/07/2005 - 01:47 | Informe spam
Hola:
Yo utilizo el siguiente script y funciona de mil maravillas. Ojalá te sea de
utilidad.


<script language="javascript">
function fixSelect(val)
{
if (!pause)
{document.write("<option>"+val);}
else
{
var gr = document.pedidos.contactos;
var valOption = new Option(val);
var valLen = gr.length;
gr.options[valLen] = valOption;
}
}

function InitOptions()
{
<%
Temp="Select * From Areas Where Estado='OK' Order By Nombre"
Tabla1.Open Temp, Conexion
While Not Tabla1.EOF
%>
if (style1=="<%= Tabla1.Fields("nombre") %>")
{
<%
Temp2="Select * From Usuarios Where Estado='OP' And Area='" &
Tabla1.Fields("codigo") & "'"
Tabla2.Open Temp2, Conexion
While Not Tabla2.EOF
If Tabla2.Fields("codigo") <> Session("UserCOD") Then
%>
fixSelect("<%= Tabla2.Fields("fullname") %>");
<%
End If
Tabla2.MoveNext
Wend
Tabla2.Close
Response.Write("}")
Tabla1.MoveNext
Wend
Tabla1.Close
%>
}

function reInitOptions()
{
var val = document.pedidos.areas;
var gr = document.pedidos.contactos;
style1 = val.options[val.selectedIndex].text;
for (i=gr.length;i>0;i--)
{gr.options[0] = null;}
pause = true;
InitOptions();
gr.options[0].selected = true;
return false;
}
</script>

...

<form action="citas.asp?clase=buscar&tipo=1" method="post" name="pedidos"
target="citas">
<select name="areas" size="1" onChange="reInitOptions()"
style="color: Black; font: normal x-small Arial;">
<option selected value="">Seleccione una Área</option>
<%
Temp="Select * From Areas Where Estado='OK' Order By Nombre"
Tabla1.Open Temp, Conexion
While Not Tabla1.EOF
%>
<option><%=Tabla1.Fields("nombre")%></option>
<%
Tabla1.MoveNext
Wend
Tabla1.Close
%>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<script language="javascript">
var pause = false;
var style1 = document.pedidos.areas.options[0].text;
document.write("<select name='contactos' style='color: Black; font:
normal x-small Arial;'><option selected>Seleccione un Contacto</option>");
InitOptions();
document.write("<\/select>");
</script>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="bot01" value="Mostrar Ficha"
class="botones">
</form>



____________________________________________________________________________________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
El SP2 lo puedes bajar desde
http://www.microsoft.com/downloads/...p;FamilyID9c9dbe-3b8e-4f30-8245-9e368d3cdb5a
El artículo de JM Tella sobre como integrar SP2 con el Xp esta en
http://www.multingles.net/docs/xpsp2.htm
Ad-aware SE en español: http://www.lavasoft.de/spanish/
spywareblaster:http://www.ct7support.com/javacool/...nload.html
Spybot - Search & Destroy
1.3:http://www.zonavirus.com/descargas/spybotsd13.exe
The Cleaner http://www.moosoft.com/
CWShreader, Hijackthis http://www.majorgeeks.com/download4086.html
Respuesta Responder a este mensaje
#5 Antonio
25/07/2005 - 11:02 | Informe spam
Gracias a ambos.
Al final lo he resuelto como me indico Matias y sin tener
que meter apenas javascript.
Salu2

Hola:
Yo utilizo el siguiente script y funciona de mil


maravillas. Ojalá te sea de
utilidad.


<script language="javascript">
function fixSelect(val)
{
if (!pause)
{document.write("<option>"+val);}
else
{
var gr = document.pedidos.contactos;
var valOption = new Option(val);
var valLen = gr.length;
gr.options[valLen] = valOption;
}
}

function InitOptions()
{
<%
Temp="Select * From Areas Where Estado='OK' Order By


Nombre"
Tabla1.Open Temp, Conexion
While Not Tabla1.EOF
%>
if (style1=="<%= Tabla1.Fields("nombre") %>")
{
<%
Temp2="Select * From Usuarios Where Estado='OP' And


Area='" &
Tabla1.Fields("codigo") & "'"
Tabla2.Open Temp2, Conexion
While Not Tabla2.EOF
If Tabla2.Fields("codigo") <> Session("UserCOD") Then
%>
fixSelect("<%= Tabla2.Fields("fullname") %>");
<%
End If
Tabla2.MoveNext
Wend
Tabla2.Close
Response.Write("}")
Tabla1.MoveNext
Wend
Tabla1.Close
%>
}

function reInitOptions()
{
var val = document.pedidos.areas;
var gr = document.pedidos.contactos;
style1 = val.options[val.selectedIndex].text;
for (i=gr.length;i>0;i--)
{gr.options[0] = null;}
pause = true;
InitOptions();
gr.options[0].selected = true;
return false;
}
</script>



<form action="citas.asp?clase=buscar&tipo=1"


method="post" name="pedidos"
target="citas">
<select name="areas" size="1"


onChange="reInitOptions()"
style="color: Black; font: normal x-small Arial;">
<option selected value="">Seleccione una


Área</option>
<%
Temp="Select * From Areas Where Estado='OK' Order By


Nombre"
Tabla1.Open Temp, Conexion
While Not Tabla1.EOF
%>
<option><%=Tabla1.Fields("nombre")%></option>
<%
Tabla1.MoveNext
Wend
Tabla1.Close
%>
</select>

<script language="javascript">
var pause = false;
var style1 = document.pedidos.areas.options


[0].text;
document.write("<select name='contactos'


style='color: Black; font:
normal x-small Arial;'><option selected>Seleccione un


Contacto</option>");
InitOptions();
document.write("<\/select>");
</script>

<input type="submit" name="bot01" value="Mostrar


Ficha"
class="botones">
</form>



__________________________________________________________


__________________________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que


haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y


quererse más
El SP2 lo puedes bajar desde
http://www.microsoft.com/downloads/details.aspx?


displaylang=es&FamilyID9c9dbe-3b8e-4f30-8245-
9e368d3cdb5a
El artículo de JM Tella sobre como integrar SP2 con el Xp


esta en
http://www.multingles.net/docs/xpsp2.htm
Ad-aware SE en español: http://www.lavasoft.de/spanish/
spywareblaster:http://www.ct7support.com/javacool/spywareb


laster/download.html
Spybot - Search & Destroy
1.3:http://www.zonavirus.com/descargas/spybotsd13.exe
The Cleaner http://www.moosoft.com/
CWShreader, Hijackthis


http://www.majorgeeks.com/download4086.html


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida