Foros del Web » Programando para Internet » Javascript »

Listas dependientes

Estas en el tema de Listas dependientes en el foro de Javascript en Foros del Web. Lo primero decir, que agradecería muchísimo cualquier tipo de ayuda ya que... llevo varios dias parado con esto... y ya es cuestion de cabezonería y ...
  #1 (permalink)  
Antiguo 01/06/2004, 03:34
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
Listas dependientes

Lo primero decir, que agradecería muchísimo cualquier tipo de ayuda ya que... llevo varios dias parado con esto... y ya es cuestion de cabezonería y que tiene que salir. Gracias.

Mi problema está relacionado con listas dependientes pero no son normales ya que los datos de ellas dependen de lo que se haga en la propia pagina, me explico.

Los datos que contienen no estan predefinidos, sino que se cargan a medida que vas interactuando, os pongo aquí abajo una parte del codigo para ver si me echais una mano. Gracias de nuevo.


<th scope="row"><table width="601" border="0" cellpadding="1" cellspacing="2">
<tr>
<th width="237" scope="row"> <strong>Usuarios
<input name="ocusu1" type="hidden" id="ocusu1">
</strong> </th>
<td width="166">
<div align="center">
<input name="bandera1" type="hidden" id="bandera3"
<%if (bandera=null) then%>
value="0"
<%end if%>>
</div></td>
<td width="244">
<div align="center"> <strong>Archivos
<input name="ocuarch1" type="hidden" id="ocuarch1">
</strong> </div></td>
</tr>
<tr>
<th scope="row"><p>&nbsp;</p>
<p>
<select name="selusu1" size="1" id="selusu1" onChange="cargar(selusu1.value)">
<%cont=1:while not rs2.EOF 'Con el cont consigo que el primer elemento aparezca seleccionado.%>
<option value="<%=rs2("usuId")%>"
<% if cont=1 then%>
selected
<%end if%>> <%=rs2("usuNombre")%></option>
<%rs2.MoveNext:cont=cont+1:wend:rs2.Close:set rs2=nothing%>
</select>
</p>
<p>&nbsp;</p></th>
<td>
<div align="center">
<input name="boton1" type="submit" disabled id="boton1" value="Eliminar">
</div></td>
<td>
<div align="center">
<p>&nbsp;</p>
<p>
<select name="selarch1" multiple id="selarch1" onChange="control()">
</select>
</p>
<p>&nbsp;</p>
</div></td>
</tr>
</table></th>


TODO ESTE CODIGO AL FIN Y AL CABO ES:



Y según lo que se seleccione a la izq... aparecerán datos a la dcha. Mediante esta funcion... la cual... es el problema ya que no funciona correctamente y no se exactamente por qué.

Donde usu es el valor del select de usuarios
function cargar(usu)
{
var indice=usu;
document.forms.form1.selarch1.length=0;
var datos=new Array();
var x=0,i=0;
<%while not rs3.eof%>
datos[i]=new Array();
datos[i][0]=<%=rs3("UsuId")%>;
datos[i][1]=<%=rs3("ArcId")%>;
datos[i][2]='<%=rs3("ArcNombreArchivo")%>';

<%rs3.MoveNext%>
i++;
<%wend%>
for (x=0;x<i;x++)
{
if (indice == datos[x][0])
{
document.forms.form1.selarch1.options[x].value=datos[x][1];
document.forms.form1.selarch1.options[x].text=datos[x][2];
}
}
}
  #2 (permalink)  
Antiguo 01/06/2004, 04:27
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
¿Seguro que el problema es del código Javacript?. De todas formas, si no dices en qué falla. ¿Qué es lo que no hace o hace mal?
  #3 (permalink)  
Antiguo 01/06/2004, 05:02
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
ups, perdona, es cierto jejejej.

falla aqui:

document.forms.form1.selarch1.options[x].value=datos[x][1];
document.forms.form1.selarch1.options[x].text=datos[x][2];

Cuando intento asignarle los valores al otro select y de seguro que es ahi porque... hago alert para ver si se guardan bien los valores en el array y si que lo hace, asi que estoy seguro que es ahi donde falla, pero yo no veo que fallo tiene. :(

Gracias por atenderme
  #4 (permalink)  
Antiguo 01/06/2004, 05:57
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Le estoy echando un vistazo. Me pregunto para qué empleas la línea:

document.forms.form1.selarch1.length=0;

Vacías la lista.
__________________
Kelpie
  #5 (permalink)  
Antiguo 01/06/2004, 07:25
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola de nuevo, esa linea la utilizo para limpiar al principio la lista por si acaso.

Y tras dar muchas vueltas... ya he descubierto el fallo, mira si no te importa y si puedes me explicas una cosilla.

ESTAS DOS LINEAS ESTAN MAL:
document.forms.form1.selarch1.options[x].value=datos[x][1];
document.forms.form1.selarch1.options[x].text=datos[x][2];

ESTAS DOS YA FUNCIONAN BIEN:
document.forms.form1.selarch1.options[aux]=new Option(datos[x][2]);
document.forms.form1.selarch1.options[aux].value=datos[x][1];

Ahora bien, mi pregunta es; Yo he visto en una pagina que las propiedades que expone el option de un text, pero.. xq aqui no me lo coje?.

Gracias. Te agradecería que si tuvieses un manual de javascript completo, o tienes alguna web de referencia... me la dieses.

Gracias de nuevo por haberte preocupado
  #6 (permalink)  
Antiguo 30/06/2004, 16:41
 
Fecha de Ingreso: marzo-2004
Mensajes: 77
Antigüedad: 20 años, 8 meses
Puntos: 0
el new Option acepta 4 parametros (text, value,X,X), asi que si quieres ingresar una opcion mas en el selarch1 tendras que ponerldo de la siguiente manera:

document.forms.form1.selarch1.options[aux]=new Option(datos[x][2],datos[x][1]);


Saludos
Karl0x
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 18:27.