Comunidad de diseño web y desarrollo en internet online

COMO PASAR UNA VARIABLE DE UN HTML A OTRO HTML

Citar            
MensajeEscrito el 11 Mar 2013 11:14 am
Hola. necesito:
1 pasar una variable de un html a otro html,
2 que se redirija automaticamente del primero al segundo
3 que en el segundo se muestre el valor de la variable.
He encontrado códigos pero no me funcionan. alguien puede ayudar?

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Mar 2013 01:03 pm
Para pasar valores (que no variables) de una página a otra, debes usar los parámetros de la URL.

En pagina1.html pones un link (o haces un window.location()) con algo como:

http://example.com/pagina2.html?variable=valor

Y en pagina2.html tomas los parámetros de la URL.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Mar 2013 01:22 pm
Si, pongo en la de origen:
<script type="text/javascript">
window.location="hola.html?num=28400";
</script>

y como lo recupero en la de destino?

Gracias por anticipado

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Mar 2013 04:32 pm
Hay varias formas de hacerlo, esta es una de ellas:

Código Javascript :

<script type="text/javascript">
var paramstr = window.location.search.substr(1);
var paramarr = paramstr.split ("&");
var params = {};

for ( var i = 0; i < paramarr.length; i++) {
    var tmparr = paramarr[i].split("=");
    params[tmparr[0]] = tmparr[1];
}
if (params['variable']) {
   console.log('El valor del parámetro variable es: '+params['variable']);
} else {
   console.log('No se envió el parámetro variable');
}
</script>

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Mar 2013 11:29 am
Gracias DriverOp por tu respuesta de ayer. No soy capaz de hacerlo funcionar. me imagino que el script que me envías es para el html de destino. si el mensaje que se envía desde el ORIGEN es
window.location="destino.php?num=28400";

en ese script que me envías cómo recupero el valor 28400 ?
Luego me hago un botón en DESTINO para ver si lo ha recibido pero no me sale nada:
<script type="text/javascript">
function mostrar() {
document.getElementById('capa').innerHTML = punto;
}
</script>
input type ="button" value="pulsame" onclick="mostrar()"/>
<div id="capa">
</div>
Millones de gracias por adelantado.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 12:09 pm
document.getElementById('capa').innerHTML = params['num'];

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Mar 2013 12:20 pm
DriverOp: Muchas gracias, de verdad. como te habrás podido imaginar soy un poco nuevo y aunque creo que he hecho cosas más complicadas que esto, aquí me había atascado. Te agradezco mucho tu ayuda y me gustaría saber tu nombre para poder dirigirme a tí personalmente.
Yo a tí, creo que poco te puedo ayudar en todo esto, pero en cualquier caso puedes contar conmigo.
Gracias de nuevo

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 03:36 pm
Me basta con saber que te serví de algo. De nada.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Mar 2013 03:52 pm
De mucho. Gracias y seguimos en contacto.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 07:02 pm
Hola DriverOp. Ya sabía yo que no tardaría mucho en darte de nuevo la lata. si envío dos valores (
window.location="../../index.html?num=0&postal=28400";

Cómo recupero el valor de la segunda (postal) en el código que me has enviado?
var paramstr = window.location.search.substr(1);
var paramarr = paramstr.split ("&");
var params = {};

for ( var i = 0; i < paramarr.length; i++) {
var tmparr = paramarr[i].split("=");
params[tmparr[0]] = tmparr[1];
}
if (params['variable']) {
console.log('El valor del parámetro variable es: '+params['variable']);
} else {
console.log('No se envió el parámetro variable');
}
la primera la recupero en var dato = params['num'];
Gracias de verdad.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Mar 2013 12:15 pm
otrodato = params['postal'];

¿De verdad que no es evidente que el índice del array es el nombre del parámetro?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Mar 2013 05:54 pm
Ja ja ja. Me vas a matar, pero para mí no lo es. De verdad que cuando decidí preguntarte analicé la función pero no fui capaz de sacarlo, quizá me falta más práctica en ello. Quizá no, seguro que sí. ahora lo que puedes tener claro es que todo esto que pregunto, no lo copio y me olvido, sino que hago pruebas, lo desmonto, lo analizo para aprender y no tener que dar la lata o por lo menos que cuando dé la lata sea cada vez por cosas más complicadas.
Gracias no por darme la función, sino por dejarme aprender.
Gracias.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Mar 2013 05:56 pm
si, claro, que sí. Ahora lo entiendo, claro. gracias gracias gracias.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Mar 2013 06:14 pm
Por favor contéstame y díme que hace tiempo a tí te pasaba algo parecido y que no me debo sentir mal por dar la lata con el compromiso de aprender de todo esto. Jajaja. no es broma.
Gracias de nuevo.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Mar 2013 08:10 pm
Por supuesto, nadie nació sabiendo.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 14 Mar 2013 07:06 am
Gracias. Un saludo.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Mar 2013 10:34 am
Driver: ¿Es posible que el valor del Array no lo acepte en una estructura switch-case? Es que lo estoy intentando pero no me da el resultado:
ORIGEN:
window.location="28400.html?postal=28400&num=1";
DESTINO (Después de haber analizado el envío y haber creado el Array)
var dato = params['num'];
var variableAevaluar = dato;
switch (variableAevaluar) {
case 1:
prim ();
break;
}

Consigo que se muestre en un document.write, para asegurarme que se recibe:
document.write(dato);

Pero no en la esctructura switch-case.

Gracias

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Mar 2013 10:36 am
prim () es una funcion que si el valor de "dato" es fijo y no "params['num']", funciona correctamente dicha función.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Mar 2013 11:08 am
DriverOp: CONSEGUIDO!!!
Lo he conseguido de esta forma, haciendo un Array antes de switch-case. Te lo pongo por si crees que hay una forma más corta de conseguirlo (casi seguro que sí):
ORIGEN:
window.location=".28400.html?postal=28400&num=1";
DESTINO (después de analizar y extraer la variable):
<script type="text/javascript">

var dato = params['num'];

var numero = new Array();
numero[0] = 1;
numero[1] = 2;
numero[2] = 3;
var nombre_punto = numero[dato];

var variableAevaluar = nombre_punto;
switch (variableAevaluar) {
case 1:
prim ();
break;
case 2:
seg ()
break;
case 3:
alert("mierda");
break;
}

function prim () {
document.write("Viene 1");
}
function seg () {
document.write("Viene 2");
}
function ter () {
document.write("Viene 3");
}
</script>


Saludos y gracias

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Mar 2013 11:09 am
Jajaja, el alert del case 3 se me ha escapado y es que en ese momento estaba un poco desesperado. jajaja.

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Mar 2013 02:17 pm
Me alegro que te haya servido...

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Mar 2013 03:40 pm
Driver:

Si lo que quiero es enviar una variable creada, cómo lo puedo hacer. Es decir en vez de
window.location="destino.html?num=123&postal=123456";

esto:
VARIABLE1 = 28400
VARIABLE2 = 127
window.location="destino.html?num=VARIABLE1&postal=VARIABLE2";

Estoy intentado en window.location y no sale y por otro lado estoy pensando si será mejor idea hacerlo con un formulario oculto, pero ahi tengo el mismo problema, cómo incluir en el atriguto value de form el valor de esas variables:

<form action="destino.html" method="GET">
<b>var1: <input type="text" size="15" name="postal" value="VARIABLE1"><br>
<b>var2: <input type="text" size="15" name="num" value="VARIABLE2"<br>
<input type="submit" value="Enviar">
</form>

un saludo

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Mar 2013 03:51 pm
para facilitarte la respuesta (o eso espero) te envío un script que he econtrado de un licenciado pero que soy incapaz de hacerlo funcionar y creo que podría ser lo que necesito: Este código lo he probado de mil maneras y no sé cómo se hace. El link donde esta es:

http://programacion.com/articulo/paso_de_variables_javascript_entre_paginas_i_12

function pasarVariables(pagina, nombres) {
pagina +="?";
nomVec = nombres.split(",");
for (i=0; i<nomVec.length; i++)
pagina += nomVec[i] + "=" + escape(eval(nomVec[i]))+"&";
pagina = pagina.substring(0,pagina.length-1);
location.href=pagina;
}

<a href="javascript:pasarVariables('destino.html', 'var1,var2')">Pulse
aquí</a>

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Mar 2013 04:39 pm
Pues me parece que en el primer código debes hacer:

Código Javascript :

VARIABLE1 = 28400;
VARIABLE2 = 127;
window.location="destino.html?num="+VARIABLE1+"&postal="+VARIABLE2;

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Mar 2013 06:13 pm
No tengo palabras DriverOp. He visto cantidad de códigos para hacer esto y te aseguro que ninguno tan breve y tan sencillo y que además FUNCIONE como lo que me has enviado. Quizá no tenga todavía conocimientos para hacerlo, pero te felicito y, por supuesto, te lo agradezco.
Es una gozada aprender tanto y tan bien.
Para terminar el proyecto que tengo entre manos no estoy seguro que me haga falta pedirte ayuda de nuevo (me imagino que eso te alegrará, jajaja) y cuando lo tenga, te enviaré un enlace para que veas donde ha acabado todo lo que me has ayudado.
Creo que estás en Argentina, no es asi?
Gracias de nuevo Driver. Eres un fenómeno o una fenómena. Un abrazo

Por jorgevillalba

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Mar 2013 01:24 pm
Pues de nada y me alegro que te haya servido.

El foro tiene una sección donde puedes poner un enlace a tu trabajo para mostrarlo.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.