Ayuda para actualizar el listado de los selects en una página con asp
Mi pregunta es la siguiente, tengo dos selects en mi página asp, una con el listado de países, y otro de ciudades que se actualiza de acuerdo al país escogido, ¿cómo hago para hacer esa actualización?. Claro, ya tengo mis datos en la base de datos, las relaciones, etc... Lo único que no se es el proceso asp, refrescar o actualizar el segundo select. Saludos
OK, Tiene suna página que contiene los dos frame, vamos a llamarla principal.html <html> <head><title>Paises y Ciudades</title> </head> <frameset rows="65,*" border=0> <frame src="VerPaises.asp" name="header"> <frame src="VerCiudadPais.asp?pais=" name="footer"> </frameset> </html> VerPaises.asp <html> <script language="JavaScript"> function refrescarCiudad( frm ){ var url; var cbo; cbo = frm.cboPais; url = "VerCiudadPais.asp?pais=" + cbo.options[cbo.selectedIndex].value; parent.footer.document.location.href = url; } </script> </head> <body> <form name="myForm"> <table border="0"> <tr> <td>Pais:</td> <td><select name="cboPais"> <option value=""> </option> <% Dim rs Dim sSQL sSQL = "SELECT CodigoPais, NombrePais FROM Pais ORDER BY CodigoPais" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sSQL, oCon Do until rs.Eof Response.Write "<option value=" & rs.Fields("CodigoRol") & ">" & rs.Fields("NombrePais") & "</option>" ) & vbCrLf rs.MoveNext Loop rs.Close: Set rs = Nothing %></select></td> <td><input type="button" value="..." onClick="refrescarCiudad(this.form);"></td> </tr> </table> <form> </body> </html> Y por ultimo la pagina VerCiudadPais.asp <html> <head> </head> <body> <form> <table><tr><td>Ciudad:</td></tr> <tr><td> <select name="lstCiudad"> <% Dim CodigoPais Dim rs Dim sSQL CodigoPais = Request.QueryString("Pais") & "" If Len( CodigoPais) > 0 Then sSQL ="SELECT CodigoCiudad, NombreCiudad FROM Ciudad WHERE CodigoPais=" & CodigoPais Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sSQL, TuObjetoConnection Do Until rs.eof Response.Write "<option value='" & rs.Fields("CodigoCiudad") & "'>" & rs.Fields("NombreCiudad") & "</option>" & vbCrLf rs.MoveNext Loop rs.Close: Set rs = nothing End If </select></td></tr></table> </form> </body> </html>
Ok, muy buena tu respuesta. Ahora lo siguiente, me podrías poner como ejemplo un pequeño código aplicando esto, como pasar el parámetro y me imagino que lo redirecciono con el response.redirect. Después de esto finalizo la pregunta. Gracias por la ayuda
Tienes varias opciones para hacerlo: 1) Descargar todo la información de países y ciudades y formar arreglo para JavaScript y en el evento OnChange del Select de países refrescar el Select de Ciudades. 2) Tener dos frames, uno donde muestres los países y otro donde muestres las ciudades y al seleccionar el país refrescar el frame pasándole como parámetro el código del país seleccionado. Esta es la técnica que uso, aunque se tarde más, pero es preferible a tener todo en el cliente.