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

ASP y Javascript

Estas en el tema de ASP y Javascript en el foro de ASP Clásico en Foros del Web. Hola!, Hace dias que tengo un problema que me ha quitado muchas, pero muchas horas de sueño. (Todo esto debe desarrollarse en una unica pagina) ...
  #1 (permalink)  
Antiguo 03/08/2003, 21:23
 
Fecha de Ingreso: agosto-2003
Mensajes: 1
Antigüedad: 20 años, 10 meses
Puntos: 0
Pregunta ASP y Javascript

Hola!, Hace dias que tengo un problema que me ha quitado muchas, pero muchas horas de sueño.
(Todo esto debe desarrollarse en una unica pagina)
Resulta que tengo en un Formulario, el cual contiene un control Select/options que se carga de datos de una tabla, hasta aqui todo OK!, ahora, resulta que la carga de un segundo Control Select/Options depende del valor que arroje el primero, dado que debe consulta otra tabla y efectuar un filtro deacuerdo a ese valor.
He desarrollado el codigo en Javascript para se complete el segundo control SELECT y funciona de maravilla siempre y cuando el valor de filtro necesario sea una constante.
Todo seria perfecto si pudiera asignar a una variable definida en ASP, el valor resultante del primer control SELECT, entiendo que no se puede de ASP obtener un valor de Javascript, y entonces????, lo malo es que debe resolverse todo esto en una sola pagina y ahi el problema.

Bueno ! desde ya muchas gracias a todos y espero que me puedan orientar...
  #2 (permalink)  
Antiguo 04/08/2003, 01:08
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
Hola,
tienes que meter todos los datos de ambas tablas en un array. (Obviamente, si son muchos registros, no podrías hacerlo así, sino con dos páginas).
Por ejemplo, este es el codigo para una relacion entre dos select, uno de Centro y otro de Departamento basado en el Centro.:
Código:
		<script language="vbscript">
		<%
		  strSQL = "SELECT Distinct SiteName, DeptName FROM Departamentos order by SiteName, DeptName"
    		  Ob_RS.Open strSQL, Ob_Conn, adOpenStatic
		%>
			   Dim SiteDept (<%= Ob_RS.RecordCount %>, 2)
			   
		<%
		  i = 1
		  while not Ob_RS.EOF 
		%>
			   SiteDept(<%= i %>, 1) = "<%= Ob_RS(0) %>"
			   SiteDept(<%= i %>, 2) = "<%= Ob_RS(1) %>"
	
  		<% 	   Ob_RS.MoveNext 
			   i = i + 1
		  Wend
		  Ob_RS.Close
		%>	   
		</script>
Ya tenemos los datos de centros y departamentos en memoria.

Ahora hay que programar los select para que al cambiar el valor de uno cargue los datos en el otro.

Para eso, creamos una funcion en vbscript que será la que llamemos en el evento onchange del select.

Código:
		<script>
		Function FillDept()
			center = document.NewI.center.options(document.NewI.center.selectedIndex).value
			document.NewI.department.options.length = 1
		  	document.NewI.department.options(0).value = 0
			document.NewI.department.options(0).innertext = "-------"
			for i = 1 to UBound(SiteDept, 1)
			    if (SiteDept(i, 1) = center ) then
				document.NewI.department.options.length = document.NewI.department.options.length + 1
			  	document.NewI.department.options(document.NewI.department.options.length - 1).value = SiteDept(i, 2)
			  	document.NewI.department.options(document.NewI.department.options.length - 1).InnerText = SiteDept(i, 2)
		  	    end if
			next
		End Function		

		</script>

Ahora, en el evento onchange del select llamamos a la función que hemos creado.

Código:
     <select name='center' onchange='fillDept()'>

Con esto ya te funcionaría. Las options de los select las puedes recuperar del array, así no tienes que volver a acceder a la bd.

Un saludo.

Última edición por AlexNV; 05/08/2003 a las 00:59
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 00:14.