• Publicidad

Carga de datos en un combobox con Javascript y ASP

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Carga de datos en un combobox con Javascript y ASP

Notapor EricFlako » 2007-02-23 13:56 @622

Hola amigos, me da gusto volverlos a saludar; tengo un problemón. Estoy haciendo un portal de una página web; debo introducir 3 combobox, con los datos siguientes:

En el primero es de la ciudad; metiendo eso en el segundo combo me debe de traer el estado, pero no sé cómo generarlo.

Estoy combinando dos lenguajes: Javascript con ASP.

Les pongo el código para que tengan una idea de cómo lo estoy haciendo

Muchas gracias.


Sintáxis: [ Descargar ] [ Ocultar ]
  1. <title>Combos combinados</title> 
  2.  
  3. <% 
  4. dim strconn 
  5. strconn = "Driver={SQL Server};Description=sqldemo;SERVER=10.1.1.94; UID=sa;PWD=sa;DATABASE=ciscrmsc" 
  6. set conn = server.createobject("adodb.connection") 
  7. conn.open strconn 
  8. dim ciudad_total 
  9. dim ciudad_real 
  10. ciudad_total=0 
  11. ciudad_real=0 
  12. %> 
  13.  
  14. <script language = "JavaScript"> 
  15. var real=0 
  16. function trae_ciudad(id_estado) 
  17. <%  
  18. set rs = server.createobject("adodb.recordset") 
  19. rs.open "select * from sc_catciu", conn 
  20. while not rs.eof 
  21. %> 
  22. if (id_estado == <%=rs.fields("estado")%>)  
  23. real=real+1 
  24. <%  
  25. rs.movenext 
  26. wend 
  27. rs=Close 
  28. set rs=nothing 
  29. %> 
  30.  
  31. var ciudades new array(real-1) 
  32. var i=0 
  33. <% 
  34. set rs = server.createobject("adodb.recordset") 
  35. rs.open "select estado from sc_catciu", conn 
  36. while not rs.eof 
  37. %> 
  38. if (id_estado == <%=rs.fields("estado")%>)  
  39. ciudad[i]=<%=rs.fields("estado")%> 
  40. <% wend %> 
  41.  
  42. </script> 
  43. <body> 
  44. <% 
  45. set rs = server.createobject("adodb.recordset") 
  46. rs.open "select * from sc_catedos", conn 
  47. %> 
  48. <form id="sepomex" name="form1" method="post" action=""> 
  49. <label>estados 
  50. <select name="sel_estados" onchange= "javascript:trae_ciudad(sepomex.sel_estados.value);"> 
  51. <% 
  52. while not rs.eof 
  53. %> 
  54. <option value="<%=rs.fields("id")%>"><%=rs.fields("nombre")%></option> 
  55. <% 
  56. rs.movenext 
  57. wend 
  58. %> 
  59. </select> 
  60. </label> 
  61. </form> 
  62. </body> 
  63. <% 
  64. set conn=nothing 
  65. rs=close 
  66. conn=close 
  67. %> 
  68. </html> 
EricFlako
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2007-02-23 13:45 @615

Publicidad

Notapor explorer » 2007-02-23 15:17 @678

Creo recordar que en este foro se ha comentado este tema varias veces, pero claro, resuelto en Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kidd » 2007-02-23 19:10 @840

Hola:

Tiene razón explorer, ese tema ya se ha hablado por lo menos un par de veces anteriormente. Aquí te dejo el link al primert thread donde alguien tenía un problema muy similar al tuyo para que veas las respuestas que se le dieron:
viewtopic.php?t=833

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Sólo falta la colonia

Notapor EricFlako » 2007-02-26 14:01 @625

¿Qué tal, amigos?

Pues de antemano gracias por el link, me ayudó de mucho. Ahora bien, miren, les pongo ya el código. Me falta jalar la base de datos de las colonias, que automáticamente jale el código postal. Les comento que la tabla de cp es muy larga y muy pesada, así que necesitaré filtrar los datos; cuento con otras 3 tablas, (edo, mun y ciudad) y necesito filtrar la información para acceder a los municipios,
espero respuesta y en verdad gracias, quisiera ver si me podrían poner realmente de vbscript.
saludos

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Combos combinados</title>

<%
dim strconn
strconn = "Driver={SQL Server};Description=sqldemo;SERVER=(local); UID=sa;PWD=sa;DATABASE=ciscrmsc"
set conn = server.createobject("adodb.connection")
conn.open strconn
%>

<!-------------------------------------------------------
INICIA EL SCRIPT DEL LLENADO DE LOS COMBOS AUTOMÁTICOS
-------------------------------------------------------->

<script language = "JavaScript">

//-------------------------------------------------------------------
//----------------------CIUDADES-------------------------------------
//-------------------------------------------------------------------

function trae_ciudad(id_estado)
{
        //INICIALIZA LA VARIABLE lst_Estados CON LAS PROPIEDADES DEL OBJETO SELECT
        var real=0
        var lst_Ciudades = document.forms[0].sel_ciudades
        var newOpt_ciudad
       
        //CREA UN RECORDSET PARA ACCEDER A LA TABLA DE CIUDAD Y LLENA UNA VARIABLE PARA DETERMINAR EL NÚMERO DE CIUDADES
        //QUE TIENE EL ESTADO SELECIONADO
        <%
        set rs = server.createobject("adodb.recordset")
        rs.open "select estado,ciudad, nombre from sc_catciu order by nombre", conn
        while not rs.eof
        %>
        if (id_estado == <%=rs.fields("estado")%>)
        {
                real=real+1
        }
        <%     
        rs.movenext
        wend
        rs.movefirst
        %>
       
        //CREA UN ARRAY DINÁMICO DE ACUERDO AL NÚMERO DE CIUDADES DETECTADAS POR EL ESTADO SELECCIONADO
        //BORRA EL CONTENIDO DEL ARREGLO DINÁMICO
        //SEGUIDO DE ESTO ELIMINA LAS VALORES DEL OBJETO <OPTION> EN CASO DE QUE HUBIERA INFORMACIÓN
       
        var ciudades= new Array(real-1)
        for (i = 0; i<=real ; i++)
        {
                ciudades[i]=""
        }
        while (lst_Ciudades.options.length)
        {
                lst_Ciudades.options.remove(0)
        }
       
        //INICIA UN CICLO PARA CREAR OBJETOS "OPTIONS" Y ALMACENA LA INFORMACIÓN DEL ARRAY "CIUDADES" EN CADA
        //UNO DE ELLOS DEPENDIENDO DE LA CANTIDAD OBTENIDA EN EL CICLO ANTERIOR CON LA VARIABLE "REAL"
       
        <%
        while not rs.eof
        %>
        i=0
        var ciu
        if (id_estado == <%=rs.fields("estado")%>)
        {
                ciu=("<%=rs.fields("nombre")%>")
                ciudades[i]=ciu
                newOpt_ciudad= document.createElement("OPTION")
                newOpt_ciudad.text= ciudades[i]
                lst_Ciudades.options.add(newOpt_ciudad)
                i=i+1
        }
        <%
        rs.movenext
        wend
        rs.Close
        set rs=nothing
        %>
}

//-------------------------------------------------------------------
//----------------------MUNICIPIOS-----------------------------------
//-------------------------------------------------------------------

function trae_municipios(id_estado)
{
        var lst_Municipios = document.forms[0].sel_municipios
        var newOpt_municipios
        var real =0
        <%
        set rs = server.createobject("adodb.recordset")
        rs.open "select estado, municipio, nombre from sc_catmuni ORDER BY nombre", conn
        while not rs.eof
        %>
        if (id_estado == <%=rs.fields("estado")%>)
        {
                real=real+1
        }
        <%     
        rs.movenext
        wend
        rs.movefirst
        %>
        var municipios= new Array(real-1)
        for (i = 0; i<=real ; i++)
        {
                municipios[i]=""
        }
        while (lst_Municipios.options.length)
        {
                lst_Municipios.options.remove(0)
        }
        <%
        while not rs.eof
        %>
        i=0
        var mun
        if (id_estado == <%=rs.fields("estado")%>)
        {
                mun=("<%=rs.fields("nombre")%>")
                municipios[i]=mun
                newOpt_municipios= document.createElement("OPTION")
                newOpt_municipios.text= municipios[i]
                newOpt_municipios.value=("<%=rs.fields("municipio")%>")
                lst_Municipios.options.add(newOpt_municipios)
                i=i+1
        }
        <%
        rs.movenext
        wend
        rs.Close
        set rs=nothing
        %>
}

//-------------------------------------------------------------------
//----------------------COLONIAS-------------------------------------
//-------------------------------------------------------------------

//*************************************************************************************
function trae_colonias(id_estado, id_municipio)
{
        var val_mpiodel
        var real=0
        var newOpt_colonias
       
        <%
        dim Mun_Inicial
        set rs_mun = server.createobject("adodb.recordset")
        rs_municipio.open  "select * from sc_catmuni", conn
        while not rs_mun.eof
        rs_mun.movenext
        wend
        rs_mun.movefirst
        %>
        var mun= new Array(real-1)
        for (i = 0; i<=real ; i++)
        {
                mun[i]=""
        }
        while (lst_Municipios.options.length)
        {
                lst_Municipios.options.remove(0)
        }
        <%
        while not rs_mun.eof   
        %>
       
        if (id_estado == <%=rs_mun.fields("estado")%>)
        {
                real=real+1
        }
        <%
        i=0
        var col
       
                if (id_estado == <%=rs_mun.fields("estado")%>)
        {
                mun=("<%=rs_mun.fields("estado")%>")
                mun[i]=col
                newOpt_colonias= document.createElement("OPTION")
                newOpt_colonias.text= municipios[i]
                newOpt_colonias.value=("<%=rs_mun.fields("estado")%>")
                lst_Municipios.options.add(newOpt_colonias)
                i=i+1
        }
       
        <%
        rs_municipio.movenext
        wend
        rs_municipio.Close
        set rs=nothing
        %>
       
       
       
       
}
///**************************************************************************************


</script>

<!-------------------------------------------------------
TERMINA EL SCRIPT DEL LLENADO DE LOS COMBOS AUTOMÁTICOS
-------------------------------------------------------->
<body>
<%
set rs_edos = server.createobject("adodb.recordset")
rs_edos.open "select distinct(nombre),id  from sc_catedos", conn
%>

<form method="post">
        Estados:
        <select name="sel_estados" id="sel_estados" onchange= "javascript&#058;trae_ciudad(sel_estados.value);">
        <%
                while not rs_edos.eof
        %>
        <option value="<%=rs_edos.fields("id")%>"><%=rs_edos.fields("nombre")%></option>
        <%
                rs_edos.movenext
                wend
        %>
        </select>
        <br>
        Ciudades:
        <select name="sel_ciudades" id="sel_ciudades" onchange="javascript&#058;trae_municipios(sel_estados.value);">
                <option>CIUDAD</option>
    </select>
        <br>
        Municipio o Delegación:
        <select name="sel_municipios" id="sel_municipios" onchange="javascript&#058;trae_colonias(sel_estados.value, sel_municipios.value);">
                <option>MUNICIPIO</option>
    </select>
        <br>
        Colonia:
        <select name="sel_colonias" id="sel_colonias" value="javascript&#058;trae_colonias(sel_estados.value, sel_municipois.value);">
                <option>COLONIA</option>
    </select>
        <br>
        Código Postal:
        <input name="cod_pos" type="text" value="CP">
        </input>
<%
rs_edos= close
conn.Close
set conn=nothing
%>
</form>

</body>
</html>
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
EricFlako
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2007-02-23 13:45 @615

Notapor Rene Serrano » 2007-02-26 15:19 @680

No me gusta VB :x . Aparte creo que este foro es exclusivo para Perl, no sé si estoy equivocado :?

Gracias :twisted:
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Notapor explorer » 2007-02-26 15:57 @706

¿Alguien se anima ha hacer la versión Perl de esto? :-)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Programación en general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados