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

Accediendo a una DB

Estas en el tema de Accediendo a una DB en el foro de ASP Clásico en Foros del Web. Se puede acceder desde una funcion en JS a una base de datos??? ¿¿COMO??? Bueno... les presento mi problema: Estoy intentando cargar los <select> (tengo ...
  #1 (permalink)  
Antiguo 20/08/2003, 12:58
san
 
Fecha de Ingreso: agosto-2003
Mensajes: 12
Antigüedad: 21 años, 8 meses
Puntos: 0
Accediendo a una DB

Se puede acceder desde una funcion en JS a una base de datos??? ¿¿COMO???

Bueno... les presento mi problema:

Estoy intentando cargar los <select> (tengo 4 de estos) apartir del primero (osea, segun se seleccione: libros, discos, etc). Entonces: Si selecciona libros, voy a la base de datos, por medio de una funcion JS a recuperar libros para mostrar en el 2do Combo. ¿Se entiende?
Mire las FAQ's pero no me resuelven este problema... o quiza no comprenda pq estoy muy novato en datos dinamicos... (si alguien quiere brindarme un pequeño emplo, agradecido)


La conexion la establezco apenas se inicia la pagina, pero no comprendo como puedo hacer un Query a la tabla desde una funcion JavaScript... Lo que tengo es lo siguiente:

<%
Option Explicit
Response.Expires = -1000

Dim oConn
Dim oRS_1
Dim sSQL
Dim sPrint_Tipo

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base.mdb"))

sSQL = "SELECT DISTINCT Tipo FROM Cositas"
Set oRS_1 = oConn.Execute(sSQL)

Do While NOT oRS_1.EOF
sPrint_Tipo = sPrint_Tipo & "<Option>" & oRS_1("Tipo").Value & "</Option>"
oRS_1.MoveNext
Loop
%>

<body>
<Select name="ListaTipo" onchange="llenar_cbos(this);">
la funcion "llenar_cbos" deberia llenar los otros combos segun
lo que seleccione en este.
<%response.write(sPrint_Tipo)%>
</Select>
</body>


  #2 (permalink)  
Antiguo 20/08/2003, 16:07
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 4 meses
Puntos: 38
Hola san.

No puedes acceder a una base de datos desde JavaScript entre otras cosas porque JavaScript se ejecuta en el navegador del cliente y no en le servidor. Lo que debes hacer es usar ASP como estas usando quizas para llenar arreglos con la información que necesitas de modo que tus rutinas JavaScript trabajen con tales arreglos.

Otra mas facil es hacerlo todo con ASP lo cual va a ser mas lento para el usuario pero mas facil para ti.

Saludos.



Movido desde JavaScript.
  #3 (permalink)  
Antiguo 20/08/2003, 17:42
Avatar de Snarfer  
Fecha de Ingreso: enero-2002
Mensajes: 55
Antigüedad: 23 años, 3 meses
Puntos: 0
creo que lo que quieres hacer es algo como esto :

<script language = "JavaScript">
// FUNCION DE COMBO BOX COMBINADO

function sublist(inform, selecteditem)
{
inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>

x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=(rs("codigo"))&" "&(rs("denominacion")) %>";
subcatagoryof = "<%=(rs("familia"))%>";
subcatagoryid = "<%=(rs("codigo"))%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;
if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
}
<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}

</script>

ya en el Body llenas el primer combo


<select id="familia" name="familia" onChange "javascript:sublist(this.form, familia.value);">

<option selected>Selecciona una familia</option>
<%familias_Sql = "Select distinct id,familia from familias"
rs.Open familias_Sql, Conn
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("familia")%></option>


<%rs.movenext
loop
set rs=nothing
conn.close
set conn=nothing%>


y el combo que depende de lo que se elija en el primero se llena asi:

<SELECT id="subcatagory" name="subcatagory" size="1">
<Option selected value="none"></option>
</SELECT>

Espero que te sirva
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:54.