combos dependientes en asp

18/02/2005 - 17:51 por TR | Informe spam
Hola,

tengo que hacer una pequeña página asp donde se muestra 3 combos:

PAISES -> PROVINCIAS -> CIUDADES

todos los datos estan en una database, he conseguido mostrar todos los
países en el combo PAISES.. pero cuando selecciono uno, por ejemplo
ESPAÑA, no consigo que se carge el combo PROVINCIAS y ademas.. que el
resto del formulario que ya ha sido rellenado los datos no se pierdan al
cargar los combos dependientes.

voy a seguir mirando como hacer, pero me pudieran ayudar se lo
agradecería :(

un cordial saludo,
 

Leer las respuestas

#1 Barbara Romero
18/02/2005 - 18:27 | Informe spam
Hola TR te agrego mi codigo para los combos que buscas, hechale un ojo, toma
en cuenta que los demas datos del formulario deberas llevarlos a cada uno de
las funciones y recuperarlos al principio del codigo para despues
reasignarlos a su lugar correspondiente ¡SUERTE!


<html>
<head>
<title>Combos Dependientes</title>
</head>

<body>

<% '
*********************************************************************************************************************
' Combos Relacionados
' Barbara Romero
'
********************************************************************************************************************* %>

<form method="POST" action="CombosDependientes.asp" name="FrCombos">
<%
if request.querystring = "" then

D1 = ""
D2 = ""
D3 = ""

else

LsPaises = Request.Querystring("PnPaises")
response.write ("Paises: "&LsPaises)
response.write "<br>"
LsProvincias=Request.QueryString("PnProvincias")
response.write ("Provincias: "&LsProvincias)
response.write "<br>"
LsCiudades =Request.QueryString("PnCiudades")
response.write ("Ciudades: "&LsCiudades)
response.write "<br>"
LsBand = Request.Querystring("PnBand")
response.write ("Bandera: "&LsBand)
response.write "<br>"

end if

Set Ob_ConnCombo = Server.CreateObject ("ADODB.Connection")
Set Ob_RSCombo = Server.CreateObject ("ADODB.RecordSet")
Ob_ConnCombo.Provider="sqloledb
Ob_ConnCombo.Open="Server=NombreServidor;Database=NombreBaseDeDatos;UID=NombreUsuario;PWD=Password"

%>

<br>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="25%" align="center">Paises</td>
<td width="25%" align="center">Provincias</td>
<td width="25%" align="center">Ciudades</td>

</tr>
<tr>

<%
' ///// Cargo el primer combo "Paises" \\\\\

SqlPais = "SELECT * FROM Paises"
Ob_RSCombo.Open SqlPais , Ob_ConnCombo %>

<td width="25%" align="center" >
<select size="1" name="D1" onChange=FunPaisSelec(this.form) >
<option value="None"></option>
<% Do until ob_RsCombo.Eof %>
<option <% If ob_RsCombo("Id_Paises")= CInt(LsPaises) then %> selected
<% End If %>
value="<%=Ob_RSCombo.Fields("Id_Paises")%>"><%=Ob_RSCombo.Fields("Paises")%></option>
<%Ob_RSCombo.MoveNext
cuentaedo=cuentaedo+1
Loop
Ob_RSCombo.Close %>
</select>
</td>

<% ' ///// Selecciono el contenido para mi segundo Combo Provincias
\\\\\ %>
<td width="25%" align="center">
<% if LsPaises = "" then %>
<select size="1" name="D2">
<option value="None"></option>
</select>

<%
else

SqlProvincias = "Select * from dbo.Provincias where Id_Paises="& LsPaises
&" order by Id_Provincias"
ob_RSCombo.open SqlProvincias, Ob_ConnCombo
'response.write SqlProvincias
'response.end
%>

<select size="1" name="D2" onChange=FunProvinciasSelec(this.form)>
<option value="None"></option>
<% Do until ob_RsCombo.Eof %>
<option <% If ob_RSCombo("Id_Provincias")= CInt(LsProvincias) Then%>
selected <% End if %>
value="<%=Ob_RSCombo.Fields("Id_Provincias")%>"><%=Ob_RSCombo.Fields("Provincias")%></option>
<% Ob_RSCombo.MoveNext
cuentaPro = cuentaPro + 1
Loop
Ob_RSCombo.close %>
</select>
<% end If %>
</td>
<% ' ///// Selecciono el contenido de mi tercer combo " Ciudades " \\\\\
%>
<td width="25%" align="center">
<%if LsProvincias = "" then %>

<select size="1" name="D3">
<option value="None"></option>
</select>

<%
else
SqlCiudades = "Select * from Ciudades where Id_Provincias="& LsProvincias
& " Order by Id_Ciudades"
Ob_RSCombo.Open SqlCiudades, Ob_ConnCombo
%>

<select size="1" name="D3" onChange=FunCiudadesSelec(this.form)>
<option value="None"></option>
<% Do Until Ob_RSCombo.Eof %>
<option <% if ob_RSCombo("Id_Ciudades")= CInt(LsCiudades) Then %> selected
<% End If %>
value="<%=Ob_RSCombo("Id_Ciudades")%>"><%=Ob_RSCombo("Ciudades")%></option>
<%Ob_RSCombo.MoveNext
CuentaMesa= CuentaMesa + 1
Loop
Ob_RSCombo.Close%>
</select>
<% End If%>
</td>

</tr>
</table>
</form>

</body>
</html>

<Script>
function FunPaisSelec(_FrCombos)
{
var _FsPaises = _FrCombos.D1.value;
//alert(_FsPaises);
var _newPais = "CombosDependientes.asp?PnPaises=" + _FsPaises +"&PnBand=1";
document.location=_newPais;
}

function FunProvinciasSelec(_FrCombos)
{
var _FsPaises = _FrCombos.D1.value;
var _FsProvincias = _FrCombos.D2.value;
//alert ("Agencia: "+ _FsProvincias);
var _newPaisProvincia = "CombosDependientes.asp?PnPaises=" + _FsPaises +
"&PnProvincias=" + _FsProvincias
document.location=_newPaisProvincia;
}


function FunCiudadesSelec(_FrCombos)
{
var _FsPaises = _FrCombos.D1.value;
var _FsProvincias = _FrCombos.D2.value;
var _FsCiudades = _FrCombos.D3.value;
//alert ("Mesa: "+ _FsCiudades)
var _newPaisProvinciaCiudades = "CombosDependientes.asp?PnPaises=" +
_FsPaises + "&PnProvincias=" + _FsProvincias +"&PnCiudades=" + _FsCiudades
document.location = _newPaisProvinciaCiudadess
}


}
</Script>

Preguntas similares