Pasando Variable a través de JavaScript de una página html a otra página
variables undefined (3)
Sin leer su código pero solo su escenario, lo resolvería usando
localStorage
.
Aquí hay un ejemplo, usaré
prompt()
para abreviar.
En la página 1:
window.onload = function() {
var getInput = prompt("Hey type something here: ");
localStorage.setItem("storageName",getInput);
}
En la página2:
window.onload = alert(localStorage.getItem("storageName"));
También puede usar cookies, pero localStorage permite muchos más espacios, y no se envían de vuelta a los servidores cuando solicita páginas.
Tengo dos páginas: "página 1" y "página 2". En la página 1 hay un cuadro de texto con un valor de, por ejemplo, 100 y un botón al final.
Al presionar el botón Quiero que javascript guarde el valor del cuadro de texto en una variable global (?) Y salte a la página 2. Con "window.onload" quiero una segunda función Javascript para alertar al valor guardado en la página1.
Aquí está mi código Javascript:
<script type="text/javascript">
var price; //declare outside the function = global variable ?
function save_price(){
alert("started_1"); //just for information
price = document.getElementById(''the_id_of_the_textbox'').value;
alert(price); //just for information
}
<script type="text/javascript">
function read_price(){
alert("started_2");
alert(price);
}
En la "página 1" tengo este botón de envío con:
<input class="button_send" id="button_send" type="submit" value="Submit_price" onclick="save_price();"/>
Inicia la función Javascript y me redirige correctamente a mi página2.
Pero con esto en la segunda página:
window.onload=read_price();
Siempre obtengo un valor "indefinido" del precio variable global.
He leído mucho sobre esas variables globales. Por ejemplo, en esta página: Problema con la variable global ... Pero no puedo hacer que funcione ...
¿Por qué esto no funciona?
Su mejor opción aquí es utilizar la Cadena de consulta para ''enviar'' el valor.
cómo obtener el valor de la cadena de consulta usando javascript
- Entonces, la página 1 redirige a page2.html? SomeValue = ABC
- La página 2 puede leer la cadena de consulta y específicamente la clave ''someValue''
Sin embargo, si esto es algo más que un ejercicio de aprendizaje, es posible que desee considerar las implicaciones de seguridad de esto.
Las variables globales no lo ayudarán aquí, ya que una vez que la página se vuelve a cargar, se destruyen.
Tienes algunas opciones diferentes:
- puede usar un enrutador SPA como SammyJS, o Angularjs y ui-enrutador, por lo que sus páginas tienen estado.
- use sessionStorage para almacenar su estado.
- almacenar los valores en el hash de URL.