buinense Posted June 23, 2010 Report Share Posted June 23, 2010 (edited) Estimados amigos, para variar yo.... Quisiera saber si ustedes saben como traer datos desde una ventana popup hacia un formulario que esta en la pagina "padre". Lo que pasa es que tengo un popup que al abrirse muestra un listado con paises, y quiero que al hacer click en el link del pais (eso ya lo se hacer) me actualice unos campos en el formulario que tengo en la pagina "padre" desde donde se abrió el popup. No se si me entienden. Muchas gracias por todo. Edited June 29, 2010 by buinense Link to comment Share on other sites More sharing options...
Ra Posted June 23, 2010 Report Share Posted June 23, 2010 En el popup, antes de cerrar o al hacer click, tienes que usar: window.opener Por ejemplo, en la página "padre" <script language=asdf...> function completarDatos(cod_pais){ document.getElementById(asdf).value = cod_pais; o puedes llamar un método ajax para actualizar la página principal } </script> </head> <form asdf> <input type="hidden" id="cod_pais" name="cod_pais" value="" /> </form> en el popup window.opener.form1.cod_pais.value=document.getElementById('cod_pais').value; o puedes llamar a la función window.opener.completarDatos(document.getElementById('cod_pais').value); No sé si me explico con esos pedacitos de código... Salu2. Link to comment Share on other sites More sharing options...
buinense Posted June 23, 2010 Author Report Share Posted June 23, 2010 En el popup, antes de cerrar o al hacer click, tienes que usar: window.opener Por ejemplo, en la página "padre" <script language=asdf...> function completarDatos(cod_pais){ document.getElementById(asdf).value = cod_pais; o puedes llamar un método ajax para actualizar la página principal } </script> </head> <form asdf> <input type="hidden" id="cod_pais" name="cod_pais" value="" /> </form> en el popup window.opener.form1.cod_pais.value=document.getElementById('cod_pais').value; o puedes llamar a la función window.opener.completarDatos(document.getElementById('cod_pais').value); No sé si me explico con esos pedacitos de código... Salu2. Gracias, me resulta, pero solo puedo pasar un parametro, el segundo, que es un texto, no me deja pasarlo. Mira este es el codigo: formProveed (que es la ventana padre): <tr> <td class="blanco">Pais</td> <td><input type="hidden" maxlength="4" name="pais" size="4"/><input type="text" name="nomP" /><input type="image" src="../images/Find20x20.png" onclick="window.open('selectPaises.php','paises','width=300 height=200');" /> </td> </tr> El popUp me abre sin problemas, y si le paso un solo parametro, o sea, el ID del pais lo entrega y actualiza el campo tipo text del formulario padre, que se llama pais(de hecho lo tengo oculto en este momento, pero si lo muestro aparece). En cambio, al dos parametros, no me entrega ninguno de los dos, paisID ni paisNombre... aqui el codigo del popUp: Funcion que entrega los valores <script language="javascript"> function entregar(id,nombre){ window.parent.document.formulario.pais.value = id; window.opener.document.formulario.nomP.value = nombre; window.close(); } </script> Codigo php en donde tengo el link que llama a la funcion y le traspasa los parametros, el cual está en Negrita: while($row = mysql_fetch_array($query)){ $flag = 1; echo "<tr>"; echo "<td class='blanco'>".$row['paisID']."</td>"; echo "<td class='blanco'>".$row['paisNombre']."</td>"; [b]echo "<td class='blanco' align='center'><a href='#' onclick='entregar(".$row['paisID'].",".$row['paisNombre']."); return false'><img src='../images/Download20x20.png' align='middle' border='0'/></a></td>";[/b] echo "</tr>"; } echo "<tr><td colspan='5' align='right' class='blanco'>Total Registros: ".$num."</td></tr>"; echo "</table>"; }else{ echo "<h3 style=' color:#FF0000'>Pais no encontrado</h3>"; } Gracias. Link to comment Share on other sites More sharing options...
Ra Posted June 23, 2010 Report Share Posted June 23, 2010 Ahí está el error: window.parent.document.formulario.pais.value = id; window.opener.document.formulario.nomP.value = nombre; Salu2. Link to comment Share on other sites More sharing options...
buinense Posted June 23, 2010 Author Report Share Posted June 23, 2010 Ahí está el error: window.parent.document.formulario.pais.value = id; window.opener.document.formulario.nomP.value = nombre; Salu2. No, igual, los dejo ambos con parent o ambos con opener y tampoco resulta, de hecho el erro que me arroja es por el nombre del pais: 'Chile' no está definido.... Link to comment Share on other sites More sharing options...
Ra Posted June 24, 2010 Report Share Posted June 24, 2010 Esto me funcionó en Firefox e IE Padre: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script language="javascript" type="text/javascript"> function datos(val1, val2){ document.getElementById('valor1').value = val1; document.getElementById('valor2').value = val2; } </script> </head> <body> <form name="form1"> <input type="text" name="valor1" id="valor1" value="" /><br /> <input type="text" name="valor2" id="valor2" value="" /><br /> <input type="button" name="ventana" onClick="java script: window.open('ventana.html');" /> </form> </body> </html> Hijo (popup): <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script language="javascript" type="text/javascript"> function pasar(){ window.opener.datos(document.getElementById('datos1').value, document.getElementById('datos2').value); } </script> </head> <body> <form name="formu"> <input type="text" name="datos1" id="datos1" value="" / > <input type="text" name="datos2" id="datos2" value="" / > </form> <a href="#" title="pasar valor" onClick="java script: pasar();" >Pasar valor a ventana padre</a> </body> </html> Salu2 y cuenta cómo te va... Link to comment Share on other sites More sharing options...
buinense Posted June 24, 2010 Author Report Share Posted June 24, 2010 (edited) Pero eso hay que hacerlo con formulario?, no con una tabla? De hecho, probé y solo me da problemas los parametros tipo texto, con los tipo numero los entrega sin ningun problema... Sabes de casualidad si hay problemas para pasar texto por javascript? Edited June 24, 2010 by buinense Link to comment Share on other sites More sharing options...
Ra Posted June 24, 2010 Report Share Posted June 24, 2010 :blink: :loco: No te caché la pregunta... :tonto: Dentro del form puedes hacer lo que quieras... por ejemplo una tabla... O al revés... dentro de la tabla, puedes hacer un form... aunque creo que no se acostumbra... Salu2. Link to comment Share on other sites More sharing options...
buinense Posted June 24, 2010 Author Report Share Posted June 24, 2010 De hecho, probé y solo me da problemas los parametros tipo texto, con los tipo numero los entrega sin ningun problema... Sabes de casualidad si hay problemas para pasar texto por javascript? Link to comment Share on other sites More sharing options...
Ra Posted June 24, 2010 Report Share Posted June 24, 2010 yo probé con textos :blink: y cero problema... Postea cómo lo dejaste finalmente... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now