Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Carga de datos en un combobox con Javascript y ASP

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Programación en General
Mensaje Vie Feb 23, 2007 12:56 pm
EricFlako
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Feb 2007
Mensajes: 2
Carga de datos en un combobox con Javascript y ASP Responder citando

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.


HTML:
<title>Combos combinados</title>

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


<script language = "JavaScript">
var real=0
function trae_ciudad(id_estado)
{
        <%
        set rs = server.createobject("adodb.recordset")
        rs.open "select * from sc_catciu", conn
        while not rs.eof
        %>

        if (id_estado == <%=rs.fields("estado")%>)
        {
                real=real+1
        }
        <%     
        rs.movenext
        wend
        rs=Close
        set rs=nothing
        %>

       
        var ciudades new array(real-1)
        var i=0
        <%
        set rs = server.createobject("adodb.recordset")
        rs.open "select estado from sc_catciu", conn
        while not rs.eof
        %>

        if (id_estado == <%=rs.fields("estado")%>)
        {
                ciudad[i]=<%=rs.fields("estado")%>
        }
        <% wend %>
}

</script>
<body>
<%
set rs = server.createobject("adodb.recordset")
rs.open "select * from sc_catedos", conn
%>

<form id="sepomex" name="form1" method="post" action="">
  <label>estados
  <select name="sel_estados" onchange= "javascript&#058;trae_ciudad(sepomex.sel_estados.value);">
  <%
while not rs.eof
%>

 <option value="<%=rs.fields("id")%>"><%=rs.fields("nombre")%></option>
<%
 rs.movenext
wend
%>

  </select>
   </label>
</form>
</body>
<%
   set conn=nothing
   rs=close
   conn=close
%>

</html>
Mensaje Vie Feb 23, 2007 2:17 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
Responder citando

Creo recordar que en este foro se ha comentado este tema varias veces, pero claro, resuelto en Perl.
Mensaje Vie Feb 23, 2007 6:10 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

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:
http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?t=833

Saludos
Mensaje Lun Feb 26, 2007 1:01 pm
EricFlako
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Feb 2007
Mensajes: 2
Sólo falta la colonia Responder citando

¿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

Perl:
<%@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>
Mensaje Lun Feb 26, 2007 2:19 pm
Rene Serrano
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Nov 2006
Mensajes: 82
Ubicación: El salvador CA
Responder citando

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

Gracias Twisted Evil
Mensaje Lun Feb 26, 2007 2:57 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
Responder citando

¿Alguien se anima ha hacer la versión Perl de esto? Smile
Publicar nuevo tema   Responder al tema    Foros de discusión -> Programación en General Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group