Pasar datos de una ventana a otra
Tengo 2 ventanas en la 1ra tengo todos los productos flores, ramos, peluches, etc y en la 2da ventana es un formulario, lo que deseo es cuando le den click en peluches en el formulario en el campo producto se ponde automáticamente peluche y de igual forma con las demás opciones.
1 respuesta
Respuesta de davidcortesb
1
1
Hay diversas maneras de hacer esto y depende de cómo hayas creado las dos ventanas y porqué.
Lo más sencillo sería que al pulsar sobre el peluche, el link regenere la ventana con el nuevo dato. Por ejemplo:
<a href="ventana2.php?producto=peluche" target="laotraventana"><img src="peluche.jpg"></a>
Lo más sencillo sería que al pulsar sobre el peluche, el link regenere la ventana con el nuevo dato. Por ejemplo:
<a href="ventana2.php?producto=peluche" target="laotraventana"><img src="peluche.jpg"></a>
Mira abre la otra ventana ok, pero en la barra de direcciones sale ... ¿formulario1.htm? Campo=peluche :S lo que yo quiero que ese valor se vaya a un input que tengo en el formulario.
Espero que me ayudes
Atentamente.
MigueL
Espero que me ayudes
Atentamente.
MigueL
Es que tu formulario no debería ser formulario1.htm sino formulario1.php para que puedas generar el formulario con la información que envías.
Si tu formulario es estático, ¿cómo lo quieres cambiar?
Si tu formulario es estático, ¿cómo lo quieres cambiar?
aver mira tengo un htm que es el formulario y otro que es la lista de productos en la lista de productos al seleccionar "Aqui" me direcciona al formulario pero al direccionarme al formulario quiero que al abrir el formulario en el campo producto el valor de ese input ya este escrito por ejemplo:
1.- Selecciono un peluche y le doy click "aqui".
2.-Se abre la ventana del formulario1.htm
3.- En el campo producto ya debe estar escrito "Peluche".
Espero que me puedas entender.
Atentamente.
MigueL
1.- Selecciono un peluche y le doy click "aqui".
2.-Se abre la ventana del formulario1.htm
3.- En el campo producto ya debe estar escrito "Peluche".
Espero que me puedas entender.
Atentamente.
MigueL
Te entiendo perfectamente. Creo que más bien no me debo haber sabido explicar.
Si tu formulario es .htm es estático y por lo tanto no puede mostrar distintos valores según el caso.
Para eso tu formulario lo tienes que convertir en PHP. Pensaba que eso estaba claro, puesto que este es un Foro de PHP.
Renombra tu formulario como formulario1.htm
Y donde ahora pone:
<input type="text" name="producto">
(O algo parecido, no he visto tu código)
Deberías poner:
<?php
echo '<input type="text" name="producto" value="' . $_GET["producto"] . '">';
?>
Si el link es como el que te he puesto anteriormente, esto debería funcionar (si tu servidor dispone de PHP, que se supone que sí).
No sé si es que no conoces PHP o es que no nos entendemos.
Si tu formulario es .htm es estático y por lo tanto no puede mostrar distintos valores según el caso.
Para eso tu formulario lo tienes que convertir en PHP. Pensaba que eso estaba claro, puesto que este es un Foro de PHP.
Renombra tu formulario como formulario1.htm
Y donde ahora pone:
<input type="text" name="producto">
(O algo parecido, no he visto tu código)
Deberías poner:
<?php
echo '<input type="text" name="producto" value="' . $_GET["producto"] . '">';
?>
Si el link es como el que te he puesto anteriormente, esto debería funcionar (si tu servidor dispone de PHP, que se supone que sí).
No sé si es que no conoces PHP o es que no nos entendemos.
Bueno en realizad no conozco php, bueno probé tu código abre la ventana pero el valor sigue sin pasar al formulario.
Si me das un ejemplo de un formulario en php te lo agradecería.
Atentamente.
MigueL
Si me das un ejemplo de un formulario en php te lo agradecería.
Atentamente.
MigueL
Hola, mira use este código:
<script language="JavaScript" type="text/JavaScript">
var nuevaVentana
function abrir()
{
// Abre la ventana
nuevaVentana = window.open("formulario1.htm","",'width=400,height=530');
Input = nuevaVentana.document.getElementById("campo");
Input.value = "Globe Roses"
//nuevaVentana = window.location.href="formulario1.htm";
//window.focus();
}
</script>
y en el link puse <a hrf="#" onclick="abrir()">Aqui</a>
Bueno cuando lo ejecuto realiza lo que deseo, pero cuando lo subo a mi web site y lo ejecuto desde internet no pasa el valor a la caja de texto :S no se por que sucede esto pero me he dado cuenta que al abrir mi html me pase un anuncio que esta bloqueando el contenido activo, no se si puede ser eso pero me parece.
Espero que me puedas ayudar.
Atentamente.
MigueL
<script language="JavaScript" type="text/JavaScript">
var nuevaVentana
function abrir()
{
// Abre la ventana
nuevaVentana = window.open("formulario1.htm","",'width=400,height=530');
Input = nuevaVentana.document.getElementById("campo");
Input.value = "Globe Roses"
//nuevaVentana = window.location.href="formulario1.htm";
//window.focus();
}
</script>
y en el link puse <a hrf="#" onclick="abrir()">Aqui</a>
Bueno cuando lo ejecuto realiza lo que deseo, pero cuando lo subo a mi web site y lo ejecuto desde internet no pasa el valor a la caja de texto :S no se por que sucede esto pero me he dado cuenta que al abrir mi html me pase un anuncio que esta bloqueando el contenido activo, no se si puede ser eso pero me parece.
Espero que me puedas ayudar.
Atentamente.
MigueL
Como ya te dije en mi primera respuesta hay muchas maneras distintas de hacerlo.
En el script que adjuntas se realiza mediante Javascript. Esto presenta el problema que tienes ahora. Probablemente lo tengas alojado en un hosting gratuito que añade publicidad. Muchos de los que lo hacen así, usan frames y en uno de ellos colocan tu página.
Por lo tanto, nuevaVentana.document no es tu página, porque has de especificar el frame en la que se encuentra. Seguramente el 0 lo tiene la publicidad y el tuyo será el 1. En ese caso:
Input = nuevaVentana.frames[1].document.getElementById("campo");
Si quieres que te funcione en ambos entornos, tendrás que diferenciar antes si estás en una página con frames o no. Para ello puedes consultar si está definido nuevaVentana.frames[1]
En el script que adjuntas se realiza mediante Javascript. Esto presenta el problema que tienes ahora. Probablemente lo tengas alojado en un hosting gratuito que añade publicidad. Muchos de los que lo hacen así, usan frames y en uno de ellos colocan tu página.
Por lo tanto, nuevaVentana.document no es tu página, porque has de especificar el frame en la que se encuentra. Seguramente el 0 lo tiene la publicidad y el tuyo será el 1. En ese caso:
Input = nuevaVentana.frames[1].document.getElementById("campo");
Si quieres que te funcione en ambos entornos, tendrás que diferenciar antes si estás en una página con frames o no. Para ello puedes consultar si está definido nuevaVentana.frames[1]
mi dominio no es gratis, es www.peluchesyrosas.com y esta conformado por 2 frames que son los marcos no??? bueno e probado tu solucion y nada. bueno te cuento hice 2 href 1= abrir 2=datos en abrir cuando le doy click abre la ventana del formulario y en datos cuando le doy click pone el valor que yo deseo esto lo hice con las funciones que te di, pero las separe una para abrir y otra para pasar datos. pero al unir todo en una sola funcion solo abre y no pasa los datos :S.
Atentamente.
MigueL
Atentamente.
MigueL
Pues envía las tres funciones: la de abrir, la de datos y la que has juntado y miraré de encontrarle el error.
Ok.
// Este script abre la ventana y escribe en ella el valor que deseo, funciona cuando lo abro desde mi pc(claro antes permito el contenido activo que me sale bloqueada en el IE), pero cuando lo subo a mi servidor web no solo abre la ventana pero escribe el valor.
<script language="JavaScript" type="text/JavaScript">
var nuevaVentana
function abrir()
{
nuevaVentana = window.open("formulario1.htm","","width=410,height=540");
Input = nuevaVentana.document.getElementById("arreglo");
Input.value = "Globe Roses"
}
</script>
// Acá esta separado en 2 links uno que abre la ventana y otro que escribe en el, tanto en mi pc como en mi seervidor funciona.
function abrir()
{
nuevaventana = window.open("formulario1.htm","","");
}
function escribir()
{
input = nuevaventana.document.getelementbyid("Arreglo");
Input = "Globe Roses"
}
Bueno espero que me puedas ayudar.
Atentamente.
MigueL
// Este script abre la ventana y escribe en ella el valor que deseo, funciona cuando lo abro desde mi pc(claro antes permito el contenido activo que me sale bloqueada en el IE), pero cuando lo subo a mi servidor web no solo abre la ventana pero escribe el valor.
<script language="JavaScript" type="text/JavaScript">
var nuevaVentana
function abrir()
{
nuevaVentana = window.open("formulario1.htm","","width=410,height=540");
Input = nuevaVentana.document.getElementById("arreglo");
Input.value = "Globe Roses"
}
</script>
// Acá esta separado en 2 links uno que abre la ventana y otro que escribe en el, tanto en mi pc como en mi seervidor funciona.
function abrir()
{
nuevaventana = window.open("formulario1.htm","","");
}
function escribir()
{
input = nuevaventana.document.getelementbyid("Arreglo");
Input = "Globe Roses"
}
Bueno espero que me puedas ayudar.
Atentamente.
MigueL
Parece que tienes algún problema con las mayúsculas y las minúsculas. Debes escribir las funciones exactamente o no funcionaran. Además has asignado un valor a Input en lugar de a Input. value En definitiva queda:
<script language="JavaScript" type="text/JavaScript">
var nuevaVentana
function abrir()
{
nuevaVentana = window.open("formulario1.htm","","width=410,height=540");
}
function escribir()
{
Input = nuevaVentana.document.getElementById("arreglo");
Input.value = "Globe Roses"
}
</script>
<script language="JavaScript" type="text/JavaScript">
var nuevaVentana
function abrir()
{
nuevaVentana = window.open("formulario1.htm","","width=410,height=540");
}
function escribir()
{
Input = nuevaVentana.document.getElementById("arreglo");
Input.value = "Globe Roses"
}
</script>
Ok. Pero la opción que me das es con 2 links y lo que deseo es que con un solo link yo pueda ejecutar esas dos funciones, te cuento cuando yo junto la función abrir() y escribri() en una sola función y lo asigno a mi link solo abre la ventana pero no asigna el valor a la caja de texto. Pero si lo hago con 2 links como el código que corregistes si funciona pero el primer link solo abre la ventana y el segundo link asigna el valor.
Espero haber sido claro.
Atentamente.
MigueL
Espero haber sido claro.
Atentamente.
MigueL
En teoría sólo hace falta juntar los dos trozos de código, pero otra opción que tienes, si dices que te funcionan correctamente por separado, es simplemente llamar a la función escribir() desde la función abrir, simplemente escribiendo su nombre en una línea más:
function abrir()
{
nuevaVentana = window.open("formulario1.htm","","width=410,height=540");
escribir();
}
function abrir()
{
nuevaVentana = window.open("formulario1.htm","","width=410,height=540");
escribir();
}
- Compartir respuesta
- Anónimo
ahora mismo