Foros del Web » Programando para Internet » Javascript »

Modificar combo - botón atrás

Estas en el tema de Modificar combo - botón atrás en el foro de Javascript en Foros del Web. Hola, Tengo en un página la siguiente estructura -> 2 combos <SELECT name="unidades" onchange="modificarDiferencial()"> <OPTION value=""> <OPTION value="103">103 <OPTION value="152">152 </SELECT> <SELECT name="Diferen" <OPTION value=""> ...
  #1 (permalink)  
Antiguo 21/12/2004, 05:29
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 4 meses
Puntos: 0
Modificar combo - botón atrás

Hola,

Tengo en un página la siguiente estructura ->

2 combos


<SELECT name="unidades" onchange="modificarDiferencial()">
<OPTION value="">
<OPTION value="103">103
<OPTION value="152">152
</SELECT>

<SELECT name="Diferen"
<OPTION value="">
</SELECT>

Al seleccionar "unidades" se ejecuta esta función ->

function modificarDiferencial()
{
index = document.forms[0].unidades.selectedIndex;

if (index != 0)
{
for ( i=1; i<= max_mesos; i++)
{
document.forms[0].Diferen[i].value = tabla_diferen[index][i]
document.forms[0].Diferen[i].text = tabla_diferen[index][i]
}

}

}

que recoje los valores correspondientes según la unidad seleccionada para rellenar el combo "Diferen" de esta tabla que se construye dinámicamente->

<SCRIPT language="JAVASCRIPT">

tabla_diferen[1][1] = "22"
tabla_diferen[1][2] = "234"
tabla_diferen[1][3] = "15"
tabla_diferen[1][4] = "418"
tabla_diferen[1][5] = "65"
tabla_diferen[2][1] = "11"
tabla_diferen[2][2] = "243"
tabla_diferen[2][3] = "87"
tabla_diferen[2][4] = "234"
tabla_diferen[2][5] = "0"

</SCRIPT>

La función va bien, y al seleccionar una unidad se rellena el select Diferen de forma correcta. Después se selecciona un valor del combo Diferen y submiten el formulario, mostrando un página con un resultado.

El problema viene cuando se va hacia atrás (con el botón del explorador) para seleccionar otros valores, los valores del select "diferen" me desaparecen y para que vuelvan a salir tengo que seleccionar otro valor diferente para unidades.

¿Hay alguna solución para que me mantenga los valores del select "Diferen" cuando navegue hacia atrás?

Gracias por adelantado.
  #2 (permalink)  
Antiguo 21/12/2004, 05:49
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Se me ocurre que al seleccionar cambies la página por una con el valor del select pasado como variable get así:

<SELECT name="unidades" onchange="location.href='pagina.html?unidades='+this.value">
<OPTION value="">
<OPTION value="103">103
<OPTION value="152">152
</SELECT>
La función la modificas de esta forma:

function modificarDiferencial()
{
index = location.href.split("unidades=")[1];

if (parseInt(index)!= 0)
{
document.getElementById('unidades').value=index;
for ( i=1; i<= max_mesos; i++)
{
document.forms[0].Diferen[i].value = tabla_diferen[index][i]
document.forms[0].Diferen[i].text = tabla_diferen[index][i]
}

}

}

Ten en cuenta que página.html es la página donde está el select!!

Y pones un onload en el body en este sentido:

<body onload="modificarDiferencial()">

Es que el problema está en que toma la página del caché. Creo que esta es la forma más sencilla (dentro del engorro).

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 21/12/2004 a las 05:53 Razón: Ultimos datos...
  #3 (permalink)  
Antiguo 21/12/2004, 08:05
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 4 meses
Puntos: 0
GRACIAS. Lo probaré a ver que tal.
  #4 (permalink)  
Antiguo 21/12/2004, 09:46
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Cuentame!

Que ardo en deseos de saber si funciona... yo creo que sí debe funcionar, pero no lo he probado.

Un saludo!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
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:53.