Foros del Web » Programando para Internet » ASP Clásico »

Cargar datos de una DB usando una lista select

Estas en el tema de Cargar datos de una DB usando una lista select en el foro de ASP Clásico en Foros del Web. Saludos a todos... Mi problema es el siguiente, estoy trabajando en ASP y quiero cargar datos en la pagina web que se encuentran en la ...
  #1 (permalink)  
Antiguo 09/05/2005, 13:06
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Cargar datos de una DB usando una lista select

Saludos a todos...

Mi problema es el siguiente, estoy trabajando en ASP y quiero cargar datos en la pagina web que se encuentran en la base de datos y esto lo quiero hacer a partir de haber seleccionado una opcion de un select, por ejemplo

al cargar la pagina inicialmente lleno un select desde la base de datos, asumamos que son proveedores, al seleccionar uno de los proveedores quiero cargar automaticamente en la pagina su direccion, telefonos, contactos, etc... sin tener que recargar la pagina, y los datos debo de consultarlos en la base de datos (haciendo un select en SQL) y proseguir con el llenado de otros datos de la pagina, no obstante ya he revisado los FAQ's y encontre lo que buscaba tal cual, pero lo estan haciendo con datos fijos... o sea, no trabajan con bases de datos, hacen el llenado de los select manuales.

tengo que aclarar que lo que quiero hacer es trabajar lo mas dinamicamente posible en esa pagina y sin tener que hacer un refresh...

ahora: Como puedo hacer esto en ASP? que debo usar? hay alguna herramienta (software) que me ayude a hacer esto?
estoy trabajando con DreamWeaver 7.0 y Sql 2000

si no entienden algo informenme para explicar mejor... espero me puedan ayudar
Saludos
Er_Duque

PD: si quieren tener un ejemplo al final del foro hay una lista que tiene todos los foros, cuando yo hago click en ella y selecciono uno de los foros hace un link a dicho foro... es algo asi lo que deseo hacer... seleccionar algo de una lista y traer los demas datos de una DB sn tener que hacer un refresh...
  #2 (permalink)  
Antiguo 09/05/2005, 13:38
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
puedes hacerlo con un IFRAME para ir a buscarlos datos a traves de un ASP y con mucho JAVASCRIPT
  #3 (permalink)  
Antiguo 09/05/2005, 14:12
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
ya en esa pagina manejo un iFrame para otras cosas... pero creo que no me explique bien amigo... dejame buscar un ejemplo parecido en inet a ver si ayudo mas a enfocar una respuesta...
saludos
  #4 (permalink)  
Antiguo 09/05/2005, 14:49
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Solo debes de adoptar el ejemplo que viene en las FAQ's de JavaScript de combos ligados a tus necesidades.
La idea es generar un arreglo en javascript con los datos del proveedor según cada clave de proveedor. En el onchange del select es llenar los valores de los componentes de formulario según la selección.

Checa ese ejemplo verás que te será muy fácil adaptarlo a lo que necesitas.
  #5 (permalink)  
Antiguo 09/05/2005, 14:51
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
aja aqui le estoy dejando un link que hace algo de lo que requiero...

este link abre una pagina donde hay una lista de varios servicios a mostrar, cuando esta lista se altera los campos para entrar a los diversos servicios son cambiados, me imagino que esto es javascript por lo que he leido... ahora lo que quiero hacer es siguiendo el ejemplo de esa pagina que cuando cambie un valor de la lista (Tarj. de credito / Tarj. de debito / etc...) busque los datos necesarios en la base de datos y colocarlos en cualquier parte de la pagina, retomando el ejemplo que mencione con anterioridad cuando seleccione un proveedor debo buscar la direccion, telefonos, contactos, entre otros... y mostrarlos en la pagina sin hacer un refresh como trabaja esta pagina...

https://www.banesco.com/servicios_electronicos_pag.htm

espero ahora este un poco mas claro el asunto.
Saludos
y Gracias por su atencion.
  #6 (permalink)  
Antiguo 09/05/2005, 14:53
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
un pequeño detalle... intente abrir el link y resulta que no abre... deben copiarlo y pegarlo en un navegador nuevo... me imagino que es por el https://
saludos
  #7 (permalink)  
Antiguo 09/05/2005, 14:56
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
gracias Myakire voy a investigar en javascript... me cambio de foro voy a buscar como me dices en los Faq's de JavaScript ya habia buscado en los faq's pero no he encontrado mucho... Gracias
  #8 (permalink)  
Antiguo 09/05/2005, 15:13
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
No baje los .js para ver el código, pero supongo que lo de ellos es aún más fácil, por que no llenan los campos dependiendo de una selección, sino que cambian los controles completos, esto me suena a una serie de capas sobrepuestas que se muestran y ocultan dependiendo de la selección. Algo un poco diferente a lo que quieres.
  #9 (permalink)  
Antiguo 09/05/2005, 15:25
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
realmente bastante diferente... ya tengo una pregunta con un moderador de los faq's de javascript espero me responda pronto, fue una pregunta privada...
en la pregunta 169 de faq's de js explica mas o menos algo de lo que quiero... pero falta mucho para lo que deseo hacer y ni idea de como hacerlo...
gracias Myakire estaremos en contacto en el foro.
  #10 (permalink)  
Antiguo 10/05/2005, 07:30
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Ok, por experiencia te digo que uno no procura mucho contestar preguntas del foro por privados.
Mira, no es que no quiera colocar código, pero es que me gustaría que primero le hicieras la lucha por ti mismo, y no me refiero a buscar, sino a hacerlo.
.......
pero que diablos
........
a ver, solo modifica este trozo de código para que tome los valores constantes de una BD's.
Código:
<html>
<head>
<title>Registro de Nuevos Veh?culos</title>
<script>

DatosCliente = new Array();

      DatosCliente[0] = new Array();

	  DatosCliente[0][0]= "JUAN PEREZ GOMEZ";
	  DatosCliente[0][1]= "DOM. CONOCIDO";
	  DatosCliente[0][2]= "434343 -  -";
	  DatosCliente[0][3]= "XXXX999999";
	  DatosCliente[0][4]= "AGUASCALIENTES";
	  DatosCliente[0][5]= "Zacatecas";
	  DatosCliente[0][6]= "[email protected]";
	  DatosCliente[0][7]= "123321";
	  DatosCliente[0][8]= "ABA, sa de cv";

      DatosCliente[1] = new Array();

	  DatosCliente[1][0]= "xxxxxxxxxx";
	  DatosCliente[1][1]= "CALLE DE LAS EMPRESAS #1234, PARQUE INDUSTRIAL";
	  DatosCliente[1][2]= "9151515 -  -";
	  DatosCliente[1][3]= "xxxxxx";
	  DatosCliente[1][4]= "aguascalientes";
	  DatosCliente[1][5]= "Zacatecas";
	  DatosCliente[1][6]= "[email protected]";
	  DatosCliente[1][7]= "7878787878";
	  DatosCliente[1][8]= "Aseguradora el Potosi";

function ActualizaCampos(Sub){
	document.form1.NombreRazonSocial.value = DatosCliente[Sub][0]
	document.form1.NoPoliza.value = DatosCliente[Sub][7]
	document.form1.Domicilio.value = DatosCliente[Sub][1]
	document.form1.Aseguradora.value = DatosCliente[Sub][8]
	document.form1.Telefonos.value = DatosCliente[Sub][2]
	document.form1.Estado.value = DatosCliente[Sub][5]
	document.form1.Ciudad.value = DatosCliente[Sub][4]
	document.form1.Email.value = DatosCliente[Sub][6]
	document.form1.RFC.value = DatosCliente[Sub][3]
}

function sublist(ItemSeleccionado){
Forma = eval('document.form1');
Forma.CbAjustador.length = 0;

   if ("3" == ItemSeleccionado) {
      var option0 = new Option("Mario Aguila Rinc?n", "15");
      Forma.CbAjustador.options[Forma.CbAjustador.length]=option0;
   }

}

</script>
</head>

<body>


<form name="form1" method="post" action="ingresaVehiculo.asp">
        <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr class="text" bgcolor="#FF9966"> 
            <td colspan="6">DATOS DEL CLIENTE</td>
          </tr>
          <tr> 
            <td colspan="6"><select name="NomCliente" onChange="ActualizaCampos(this.selectedIndex)">
                
                <option value="XXXX999999" >JUAN PEREZ GOMEZ</Option>

                
                <option value="NICO921212R52" >NICOMETAL MEXICANA SA DE CV                                          </Option>
                
              </select> <input type="Button" value="Nuevo Cliente" onclick="window.open('cliente.asp?popup=true','','toolbar=0,width=560,height=510');" class="boton" style="width:120"> 
              <input name="TipoCliente" type="hidden" value="true" checked> &nbsp;</td>
          </tr>
          <tr class="smalltext"> 
            <td colspan="3">Nombre del cliente</td>
            <td colspan="3">&nbsp;</td>
          </tr>

          <tr class="smalltext"> 
            <td colspan="6">&nbsp;</td>
          </tr>
          <tr> 
            <td colspan="6"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="smalltext" bgcolor="#CCCCCC">
                <tr> 
                  <td colspan="3"><input name="NombreRazonSocial" type="text"  size="64" disabled></td>
                  <td><input name="NoPoliza" type="text" disabled id="NoPoliza"></td>
                </tr>
                <tr> 
                  <td colspan="3">Nombre o raz&oacute;n Social</td>

                  <td>No. Poliza</td>
                </tr>
                <tr> 
                  <td colspan="4"><input name="Domicilio" type="text" id="Domicilio" size="100" disabled></td>
                </tr>
                <tr> 
                  <td colspan="4">Domicilio</td>
                </tr>
                <tr> 
                  <td width="84"><input name="Aseguradora" type="text" id="Aseguradora" size="13" disabled></td>

                  <td width="146"><input name="Telefonos" type="text" disabled id="Telefonos"></td>
                  <td width="156"><input name="Estado" type="text" disabled id="Estado"></td>
                  <td width="227"><input name="Ciudad" type="text" disabled ></td>
                </tr>
                <tr> 
                  <td>Aseguradora</td>
                  <td>Tel&eacute;fonos</td>
                  <td>Estado</td>

                  <td>Ciudad</td>
                </tr>
                <tr> 
                  <td colspan="3"><input name="Email" type="text" disabled size="60"></td>
                  <td><input name="RFC" type="text" disabled ></td>
                </tr>
                <tr> 
                  <td colspan="3">Correo Electr&oacute;nico</td>

                  <td>RFC</td>
                </tr>
              </table></td>
          </tr>
        </table>
</form>
<script>ActualizaCampos(0);</script>
				 </td>
            </tr>
        </tbody>

    </table>
</body>
</html>

Última edición por Myakire; 01/05/2009 a las 13:41
  #11 (permalink)  
Antiguo 10/05/2005, 08:01
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Gracias, la verdad es que no es mi intencion que me den el codigo ni que programen por mi, a mi me interesa aprender y la verdad que con javascript estoy medio chino... todavia hay cosas que no entiendo y bueno para adelante digamos que lo asimilo facil porque se parece mucho a c++ pero igual hay cosas que no entiendo... en fin, lo que me enviastes esta muy bueno presisamente lo que requiero, ahora para no entrar en polemicas me gustaria saber como (mas no que me den el codigo, yo lo puedo hacer y buscare ayudas de comandos, objetos, etc.) manejo los datos de la base de datos en JavaScript? se maneja igual que en ASP? creo una objeto para ejecutar el string de conexion a la BD? etc...
esto es lo que necesito saber... del resto me encargo yo, con solo saber como hago eso despues resuelvo... y muchas gracias myakire por la informacion, como veras soy nuevo en el foro y mi intencion es aplicar la politica Ganar/Ganar - Aprender/Enseñar gano yo como gana quien ayudo... creo que es lo que buscamos todos aqui.

Salduos y gracias nuevamente
Er_Duque
  #12 (permalink)  
Antiguo 10/05/2005, 09:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Pues mi estimado Er_Duque, muy bien por tu política

Con respecto a lo que preguntas, pues temo que no tengo a la mano código ASP que maneje JSSS (jscript server side) que es el que podrías utilizar para manejar la BD's. Ahora, si no te importa programar el ASP con VBscript, pues es fácil.

Basta un objeto de conexión al que apuntaremos a (como no especificas cual BD utilizas) access; un objeto donde guardar los registros devueltos por una consulta y listo. El chiste es ir mezclando el código de servidor con el de cliente, por ejemplo:

Código:
<%
  Dim oConn1,oRs1
  Set oConn1 = Server.CreateObject("ADODB.Connection")
  Set oRS1 = Server.createobject("ADODB.Recordset")
oConn1.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("prueba.mdb")
   oRS1.Open "select * from nombres a", oConn1, adopenstatic,adcmdtext	
%>
<script>
DatosCliente = new Array();
<%	
	while not oRs1.EOF
%>
DatosCliente[<%=oRs1("Clave")%>] = new Array();
	  DatosCliente[<%=oRs1("Clave")%>][0]= "<%=oRs1("Nombre")%>";
	  DatosCliente[<%=oRs1("Clave")%>][1]= "<%=oRs1("Domicilio")%>";
	  DatosCliente[<%=oRs1("Clave")%>][2]= "<%=oRs1("Telefono")%>";
etcétera, etcétera, etcétera
<%	Wend
%>
</script>
Saludos nuevamente
  #13 (permalink)  
Antiguo 10/05/2005, 13:26
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Gracias por el dato Myakire, la verdad es que si me llegabas a decir algo de java como te habia comentado lo iba a hacer pero no es mi fuerte... me gusta mas Vbscript se entiende mejor como dices, es como mas para novatos... mas no dejare de investigar en javascript de hecho mi futuro esta enfocado en Php... por lo pronto te comento que manejo SQL 2000 y este es el string que uso de conexion:

strConnect = "Server=LOCAL; Provider=SQLOLEDB.1;Password=xxxxx;Persist Security Info=True;User ID=userQuick;Initial Catalog=DBquick"

luego hago el llamado a una funcion:

Function DBOpen()
Dim oConn
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open strConnect
set DBOpen = oConn
End Function

y esta funcion la puedo llamar en el mometo que la necesite, claro esta debo incluir el archivo donde programo la funcion en las paginas asp que la quiero usarla.
Ahora si no tengo ninguna excusa... despues enviare el ejemplo de lo que culmine con mi proyecto... vinculando los iFrames con esto de Java pues veremos que sale
Saludos
Er_Duque
  #14 (permalink)  
Antiguo 10/05/2005, 13:41
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 1 mes
Puntos: 2
Hola

Te recomiendo partir en pedazos lo que estas intentando, realmente es muy simple...

1. Necesitas jalar tus datos en ASP desde la base de datos.
2. Con esos resultados necesitas CREAR los valores para el JavaScript
3. AL FINAL solucionas el problema del refresh, una vez que tengas la funcionalidad correcta, te preocupas de los demas.

El problema grande que tienes, es que si tienes mucha info en tu base de datos, que creo que es el caso, tendras que crear toneladas de JS para evitar el refresh, lo cual no es bueno, tambien el sistema de IFRAME es complicado, es decir, muy avanzado.

Entonces preocupata por terminar los primeros dos pasos, y despues te metes con lo mas dificil. Para el ASP con JavaScript es muy sencillo, algo como

1. En HTML es solamente presentacion:

<select name='lista' onChange='pagina.asp'>
<option value=1>texto1</option>
<option value=2>texto1</option>
<option value=3>texto1</option>
<option value=4>texto1</option>
</select>

Con eso ya tienes una lista de valores.

2. En ASP, necesitas crear esa lista de forma dinámica:

rs= Conn.Execute("select * from tabla")
%>
<select name='lista' onChange='pagina.asp'>
<option value=<%=rs("valor")%>><%=rs("texto")%></option>
<%rs.movenext%>
<option value=<%=rs("valor")%>><%=rs("texto")%></option>
</select>

Si te fijas, la entrada es la clave, en otras partes has visto que la entrada es basada en arreglos (valores fijos), entonces lo unico que varia es el tipo de entrada, el sistema es el mismo.

Entonces, primero resuelve que funcine completamente lo básico, y después realiza las cosas mas complejas, con este sencillo ejercicio va a entender mucho mas acerca de ASP + HTML + JavaScript, porque te daras cuenta exactamente donde puedes utilizar cada uno.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #15 (permalink)  
Antiguo 10/05/2005, 14:26
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Gracias Neuron_376, esta info confirma lo poco que he realizado, referente a la cantidad de registros, pues son mucho los que coloco en la lista, pero los datos para buscarlos sin refrescar no son muchos asi que no debo tener mayor problema, con la informacion que tenia me era suficiente... ahora estoy mas comodo... lo que me falta es sentarme con calma a programar... desde esta noche me siento a terminar esa tareita que tengo pendiente...

Gracias a todos.
Er_Duque
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:17.