Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/08/2003, 01:08
Avatar de AlexNV
AlexNV
 
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años, 10 meses
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