Foros del Web » Programando para Internet » Javascript »

pasar valor a un form desde un popup

Estas en el tema de pasar valor a un form desde un popup en el foro de Javascript en Foros del Web. como puedo pasar el valor a un formulario desde un popup mediante un link, que no sea como el ejemplo de las faqs, existe alguna ...

  #1 (permalink)  
Antiguo 05/04/2005, 10:47
Avatar de jUaN_  
Fecha de Ingreso: septiembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 220
Antigüedad: 21 años, 7 meses
Puntos: 0
Exclamación pasar valor a un form desde un popup

como puedo pasar el valor a un formulario desde un popup mediante un link, que no sea como el ejemplo de las faqs, existe alguna manera.

alguien me podria ayudar
__________________
<% Viru %>

Última edición por jUaN_; 06/04/2005 a las 06:41
  #2 (permalink)  
Antiguo 05/04/2005, 11:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola jUaN_

No se como será el ejemplo de las FAQs, pero puedes hacerlo así:

<a href="#" onclick="opener.forms['nombreFormulario']['nombreControl'].value='algo';return false">Enviar</a>

Espero que te sirva. Saludos,
  #3 (permalink)  
Antiguo 05/04/2005, 11:38
Avatar de jUaN_  
Fecha de Ingreso: septiembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 220
Antigüedad: 21 años, 7 meses
Puntos: 0
gracias javierb, pero te hago una consulta porque me tira este error
opener.forms.frm es nulo o no es un objeto
__________________
<% Viru %>
  #4 (permalink)  
Antiguo 05/04/2005, 12:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Yo diría que el código está bien. ¿Puedes poner el código que estás usando?

Saludos,
  #5 (permalink)  
Antiguo 05/04/2005, 12:18
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
efectivamente sale ese error ... justamente estoy buscando lo mismo pero al momento de hacer clic en el popup como cierro esa ventana y pasar ese valor en un cuadro de texto?

saludos
__________________
rocita
  #6 (permalink)  
Antiguo 05/04/2005, 12:26
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
este es mi sample:


<form name="form" method="POST" action="<?=$PHP_SELF?>">
<input name="col" type="text" id="col" size="4" maxlength="7">
<a href="javascript:colores_window('colores.php')">Se lect color</a>
</form>



en mi popup

<a href="#" onclick="opener.forms['form']['col'].value='100';return false">COD 001</a>

:D
__________________
rocita
  #7 (permalink)  
Antiguo 05/04/2005, 12:32
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Creo que los formularios "cuelgan" del objeto document, así que pienso que sería mejor usar:

opener.document.forms['nombreFormulario']['nombreControl'].value='algo'...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 05/04/2005, 12:38
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola rocita

Creo que esto si que os servirá a tí y a jUaN_:

onclick="opener.document.forms['form']['col'].value='100';return false"

Crucemos los dedos. Saludos,
  #9 (permalink)  
Antiguo 05/04/2005, 12:40
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
¡Cachis! Mientras estaba probando el código para no volver a pifiarla se me ha adelantado caricatos (¡hola! ). No gano para sustos
  #10 (permalink)  
Antiguo 05/04/2005, 12:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por JavierB
Hola rocita

Creo que esto si que os servirá a tí y a jUaN_:

onclick="opener.document.forms['form']['col'].value='100';return false"

Crucemos los dedos. Saludos,
Javi: Me parece que te "copiaste"... ...

<offtopic>La "muesca" me temo que la voy a poner en mi winchester</offtopic>

Saludos

P.D: Mientras respondía ví que ya te habias enterado...
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 05/04/2005, 13:50
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
Super @migos .. .si funciona!!!!!!!!!

ahora como cierro mi popup al momento de hacer clic window.close ??
__________________
rocita
  #12 (permalink)  
Antiguo 05/04/2005, 13:52
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
<a href="#" onclick="opener.document.forms['form']['col'].value='100'; window.close(); return false">

ahora si ... y me cierra mi ventana :D gracias

caricatos y javierB
__________________
rocita
  #13 (permalink)  
Antiguo 06/04/2005, 06:33
Avatar de jUaN_  
Fecha de Ingreso: septiembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 220
Antigüedad: 21 años, 7 meses
Puntos: 0
muestro un ejemplo del mismo

el formulario seria este

3.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
<script language="JavaScript">
function abrirVentana() {
open("2.htm","miVentana", "toolbar=no,location=no,scrollbars=yes,directories =no,status=no,menubar=no,resizable=no,width=650,he ight=600");
}
</script>
</head>

<body>
<form name="frm" action="ingresoremedy1.asp" method="POST" onsubmit="document.forms[0].enviar.value='Generando Incidencia';document.forms[0].enviar.disabled=true;">
<table>
<tr>
<td width="27%" height="20">&nbsp;Centro de costos</td>
<td width="73%" height="20">
<input name="CECO" type="text" size="50" autocomplete="off">
<a href="#" onclick="abrirVentana()">Buscar</a>
</td>
</table>
</form>
</body>
</html>

y el popup como un emplo este 2.htm

<a href="#" onclick="opener.document.forms['frm']['ceco'].value='100'; window.close(); return false">hola</a>

donde si hago clic en el link me tira error
__________________
<% Viru %>
  #14 (permalink)  
Antiguo 06/04/2005, 07:39
Avatar de jUaN_  
Fecha de Ingreso: septiembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 220
Antigüedad: 21 años, 7 meses
Puntos: 0
rosita, me podrias mostrar todo el codigo que usaste para el popup?
__________________
<% Viru %>
  #15 (permalink)  
Antiguo 06/04/2005, 08:22
Avatar de jUaN_  
Fecha de Ingreso: septiembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 220
Antigüedad: 21 años, 7 meses
Puntos: 0
ya encontre el error

gracias igual
__________________
<% Viru %>

Última edición por jUaN_; 06/04/2005 a las 08:29
  #16 (permalink)  
Antiguo 08/04/2005, 17:04
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
usu este JS

Juan

function colores_window (pagina) {
var opciones="toolbar=no,location=no,directories=no,st atus=no,menubar=no,scrollbars=no,resizable=yes,wid th=550,height=590,top=10,left=10";
window.open(pagina,"",opciones);
}
__________________
rocita
  #17 (permalink)  
Antiguo 08/04/2005, 17:48
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
se me presento otro problema ....

Ocurre que estoy desarrollando un carrito de compras tengo un cuadro de texto en el cual tengo colores uso un popup para cargar los colores que son una lista de numero inicialmente me funciona perfectamente.

Añado a la cesta y todo funcioan bien a la primera pero cuando voy a otra seccion y quiero volver a añadir la lista de colores el JS ya no me funciona tengo el mismo problema para validar cantidades en mi carrito de compras el JavaScript solo me funciona a la primera.

donde creen que esta el ERROR ?
__________________
rocita
  #18 (permalink)  
Antiguo 08/04/2005, 20:01
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
¿hay que verlo o hay que adivinarlo?
  #19 (permalink)  
Antiguo 08/04/2005, 21:05
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
uso un archivo popup.js

el script es :


function colores_window (pagina) {
var opciones="toolbar=no,location=no,directories=no,st atus=no,menubar=no,scrollbars=no,resizable=yes,wid th=550,height=590,top=10,left=10";
window.open(pagina,"",opciones);
}


abro en un popup un archivo colores.php

Código HTML:
 <TR> 
      <TD height="25" align="center" valign="top"><b><font size="2" face="Courier New, Courier, mono"> 
        <a href="#" onclick="opener.document.forms['form']['col'].value='001'; window.close(); return false">COD 001</a></font></b></TD>
      <TD valign="top"> <div align="center"><b><font size="2" face="Courier New, Courier, mono"> 
          <a href="#" onclick="opener.document.forms['form']['col'].value='002'; window.close(); return false">COD 002</a></font></b></div></TD>
      <TD valign="top"> <div align="center"><b><font size="2" face="Courier New, Courier, mono"> 
          <a href="#" onclick="opener.document.forms['form']['col'].value='003'; window.close(); return false">COD 003</a></font></b></div></TD>
      <TD valign="top"> <div align="center"><b><font size="2" face="Courier New, Courier, mono"> 
          <a href="#" onclick="opener.document.forms['form']['col'].value='004'; window.close(); return false">COD 004</a></font></b></div></TD>
      <TD valign="top"> <div align="center"><b><font size="2" face="Courier New, Courier, mono"> 
          <a href="#" onclick="opener.document.forms['form']['col'].value='005'; window.close(); return false">COD 005</a></font></b></div></TD>
    </TR>
    <TR> 
uso varios paginas

me_amp01.php
me_amp02.php
me_amp03.php
me_amp04.php
me_amp05.php
me_amp06.php
me_amp07.php
.
.
.
.
me_amp60.php

donde tengo varios productos en los cuales voy adicionando mi carrito de compras, en todos esos archivos uso este codigo solo cambiando el valor de los ID y PRECIO

Código PHP:
  <form name="form" method="POST" action="<?=$PHP_SELF?>">
  <table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr> 
      <td valign="middle" height="23" align="center"> 
            Color</td>
      <td width="72%" valign="middle"><input name="col" type="text" id="col" size="4" maxlength="7"> 
        <a href="javascript:colores_window('colores.php')">Select color</a></td>
    </tr>
    <tr> 
      <TD valign="middle" height="28" align="center">
      Quantity</TD>
      <TD valign="top"> <input name="cant" type="text" id="cant" size=5> </TD>
    </tr>
    <tr> 
      <TD>&nbsp;</TD>
      <TD valign="middle" colspan="3"> 
    <input name="id" type="hidden" value="MA130"> 
    <input name="precio" type="hidden" value="89"> 
        <font color="#FFCC00" size="3"><b> 
        <input type="submit" name="Submit" value="Add to card" class="boton">
        </b></font> </TD>
    </tr>
  </table>
  </form>
Como les dije en un primer archivo me funciona perfectamente luego me sale un error opener.forms.frm es nulo o no es un objeto
__________________
rocita
  #20 (permalink)  
Antiguo 09/04/2005, 06:46
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9

Asi a primera vista ,no veo por ninguna parte 'opener.form.frm' ademas 'frm' no es ningun campo del formulario que muestras.


Podrias abreviar:

opener.document.forms['form']['col'].value

por

opener.document.form.col.value


No tengo muy claro desde donde abres cada una de esas paginas, y de si incluyes en ellas el script ,pero si las abres desde la pagina principal y no incluyes en ellas el script, esta orden:

javascript:colores_window('colores.php')

deberia ser:

javascript:opener.colores_window('colores.php')


Si no las abres desde la pagina principal, y tampoco incluyes en ellas el script , y si no me equivoco ,deberias dar un nombre a la ventana principal, al comienzo del script:

window.name='principal'

y luego la instruccion:

javascript:principal.colores_window('colores.php')


Voy a hecharle otra ojeada a ver si encuentro algo mas.

Última edición por programeitor; 09/04/2005 a las 07:02
  #21 (permalink)  
Antiguo 09/04/2005, 10:15
 
Fecha de Ingreso: diciembre-2004
Ubicación: Iquique, Chile
Mensajes: 150
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola;

La pregunta esta buena, pero, como lo tienen solamente funciona en Explorer, pero en mozilla, opera, firefox, el acceso a los elementos del form o al documento no toman en cuenta el nombre de los elementos.

Explorer, internamente sabe donde ir, pero en los otros navegadores, simplemente no saben como??.

La solución es emplear la función "getElementById" esta es la manera de acceder a los diferentes elementos en el objeto document.

Nos vemos.
  #22 (permalink)  
Antiguo 09/04/2005, 12:00
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
hice esos cambios que me sugeriste pero sigo con el mismo problema programeitor

en mis paginas
me_amp01.php
me_amp02.php
me_amp03.php
me_amp04.php
me_amp05.php
me_amp06.php
me_amp07.php
.
.
.
.
me_amp60.php

incluyo a mi JS de la siguietne manera

<LINK href="main.css" type=text/css rel=STYLESHEET>
</HEAD>
<SCRIPT language=javascript src="../../popup.js">
</SCRIPT>
.....
</html>

la ayuda proporcionada por JavierB y caricatos funciona perfectamente

<a href="#" onclick="opener.document.forms['form']['col'].value='003'; window.close(); return false">COD 003</a>

como tu dices de igual manera

<a href="#" onclick="opener.document.form.col.value='001'; window.close(); return false">COD 001</a>

pero si quiero volver a acceder al mismo link colores que se abre en un popup al volver hacer clic en uno de esos links
ejemplo

Código HTML:
<a href="#" onclick="opener.document.form.col.value='001'; window.close(); return false">COD 001</a> 
me sale el error :
Cita:
opener.forms.frm es nulo o no es un objeto
__________________
rocita
  #23 (permalink)  
Antiguo 09/04/2005, 12:00
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
No puedo decir mas que en los que lo he probado. , funciona en Internet Explorer y en Netscape.
  #24 (permalink)  
Antiguo 09/04/2005, 12:01
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
gracias por la ayuda nostromo_

la verdad no hice la prueba con otros browsers pero yo solo uso el Internet Explorer, como empleo tu solución con "getElementById" ???

haber sime das una ayuda :)
__________________
rocita

Última edición por rocita; 09/04/2005 a las 12:03
  #25 (permalink)  
Antiguo 09/04/2005, 12:05
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por nostromo_
... como lo tienen solamente funciona en Explorer, pero en mozilla, opera, firefox, el acceso a los elementos del form o al documento no toman en cuenta el nombre de los elementos.
Hola nostromo_

por supuesto que toman el nombre esos navegadores ¿de dónde sacas que no lo hacen?
  #26 (permalink)  
Antiguo 09/04/2005, 12:53
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
.

Acabo de descargar Firefox y tambien funciona, Bueno nostromo, supongo que te habras confundido ,no hay problema ,de todos modos gracias, por ponerme en duda ,asi me he descargado tambien el firefox para hacer pruebas ,saludos.

Rosita Bolivianita ,como te comente antes, en alguna parte tienes 'opener.document.form.frm' o 'opener.document.forms['form']['frm'], sino no te daria éste error.

¿tienes algun campo que se llame 'frm'? ,porque si no lo tienes, y le haces una llamada, te va a seguir dando el error.

Te recomiendo que revises el codigo (puedes usar el block de notas o lo que te parezca para buscar en las paginas 'frm'.

Otra cosa, no se si sera parte del problema ,pero pon las comillas en la llamada al css y al script:

<link rel="stylesheet" type="text/css" href="archivo.css">
<script type="text/javascript" src="acchivo.js"></script>

Otra cosita mas:

<a href="#" onclick="opener.document.form.col.value='001'; window.close(); return false">COD 001</a>

este link, cambia el valor de opener.document.form.col y te cierra la ventana, pero no abre ningun popup.

.

Última edición por programeitor; 09/04/2005 a las 13:31
  #27 (permalink)  
Antiguo 09/04/2005, 17:04
 
Fecha de Ingreso: diciembre-2004
Ubicación: Iquique, Chile
Mensajes: 150
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola;

En referencia de mis comentarios, en las versiones anteriores esto no resultaba, ya que el DOM los toma distinto según la versión del navegador.

Aquí les dejo otra alternativa, a mi gusto la mejor.

Ventana padre html, maestro1.html

Código HTML:
<html>
<head>
<title></title>
<script>
var parametro;
function popup()
{
	parametro = window.open("copia1.html","","width=400,height=300");
	parametro.document.getElementById('1').value = "Pasar Valor al Padre :";
}
</script>
</head>
<body>
<form name=formul>
	<input type=button value="Valor Tabla" onclick=popup();>
		<br>
	Parametros de la Ventana 1 <input type=text size=20 id=resul_1 readonly>
</form>
</body>
</html> 

copia1.html


Código HTML:
<html>
<head>
<title>Prueba 1</title>
<style>
body {font-family:verdana;font-size:12px;}
.texto{font-family:verdna;font-size:12px;}
</style>
<script>
function enviar(obj)
{
	with(document)
	{
		var dat = getElementById(obj).value;
		with(opener.document)
		{
			getElementById('resul_1').value = dat;
		}
		//--- cerrar ventana actual---
		window.close();
	}
}
function leer(obj)
{
	with(document)
	{
		var n = getElementById(obj).value;
		var m = getElementById('1').value;
		getElementById('aqui').value = m + " " + n;
	}
}
function vacio()
{
	with(document)
	{
		var m = getElementById('1').value;
		getElementById('aqui').value = m;
	}
}
</script>
</head>
<body >
<table border=1 cellspacing=0 cellpadding=0 width=100 bgcolor=silver>
	<tr onmouseover=leer('d1'); onmouseout=vacio();>
		<td id=d1 value=men_1 onclick=enviar('d1');>Dato_1</td>
	</tr>
	<tr onmouseover=leer('d2'); onmouseout=vacio();>
		<td id=d2 value=men_2 onclick=enviar('d2');>Dato_2</td>
	</tr>
	<tr onmouseover=leer('d3'); onmouseout=vacio();>
		<td id=d3 value=men_3 onclick=enviar('d3');>Dato_3</td>
	</tr>
	<tr onmouseover=leer('d4'); onmouseout=vacio();>
		<td id=d4 value=men_4 onclick=enviar('d4');>Dato_4</td>
	</tr>
</table>
<input type=text id=aqui size=40 readonly>
<input type=hidden id=1 size=40 readonly>
</body>
</html> 
Nos vemos.

Última edición por nostromo_; 10/04/2005 a las 19:30
  #28 (permalink)  
Antiguo 11/04/2005, 05:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 5
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta

Hola, yo suelo usar el Firefox y para cargar una select desde un pop-up he puesto esta funcion javascript:
<script>
function AddDireccion(valor) {
var n = opener.document.forms.cliente.address.length;
var nuevadir=new Option(valor,n + 1,true,true);
opener.document.forms.cliente.address.options[n]=nuevadir;
window.close();
}
</script>

Como digo, con Firefox funciona pero lo acabo de probar con Explorer y falla
en la linea donde se carga la select de la ventana principal y no hace nada:
(opener.document.forms.cliente.address.options[n]=nuevadir;).
Alguien me puede ayudar?
  #29 (permalink)  
Antiguo 11/04/2005, 11:31
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
Alo >> programeitor

pues como dije en mi anterior post si hago correr mi ejemplo funciona perfectamente asi que no hay ningún problema en una primera llamada al popup, el problema esta cuando ejecuto el segundo. estoy usando un carrito de compras y si quiero selecionar colores para los diferentes productos que dispongo tengo que llamar nuevamente al popup pero en la segunda me sale el error :

opener.forms.frm es nulo o no es un objeto

:(
__________________
rocita

Última edición por rocita; 11/04/2005 a las 11:32
  #30 (permalink)  
Antiguo 11/04/2005, 11:35
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola rocita,

has probado agregando document?

opener.document.forms.frm
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:15.