Foros del Web » Programando para Internet » Javascript »

Pasar dato de un Pop-Up a su página llamadora...

Estas en el tema de Pasar dato de un Pop-Up a su página llamadora... en el foro de Javascript en Foros del Web. Muy buenas. Antes que nada, pido disculpas por traer un tema bastante comentado en el foro pero lamentablemente, al menos yo, no he podido obtener ...
  #1 (permalink)  
Antiguo 27/10/2009, 14:37
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 2 meses
Puntos: 3
Pregunta Pasar dato de un Pop-Up a su página llamadora...

Muy buenas. Antes que nada, pido disculpas por traer un tema bastante comentado en el foro pero lamentablemente, al menos yo, no he podido obtener el resultado deseado...

Vamos por partes: como sale a simple vista, tengo 2 páginas, la que llama y el popup. Lo que hago no es nada del otro mundo, en la página 'llamadora' (pag1.php) tengo un mini formulario dónde ingresando un id de cliente, se accede a los demás datos. Cómo muchas veces no se recuerda ese id, hice un enlace a un popup (dudaID.php) donde ingresando su número de documento, se obtiene dicho id. Hasta ahí todo perfecto, pero al querer hacer un poquito más, me trabé (no es necesario para el trabajo en sí, pero lo hago por mí): cuando obtengo el id, se pulsa un botón en el popup y se cierra... pero yo quiero que ese id (el dato) aparezca en el input del mini formulario llamador cuando cierro el popup y no lo puedo lograr...

pag1.php
Código PHP:
<?php
echo "<form name='form1' method='post' action='pag2.php' autocomplete='off' onSubmit='return Verificar()'>";                
echo 
"<input type='text' name='p_idCliente'> <input type='submit' name='continuar' value='Continuar' class='bt'>";
echo 
"</form><br>";
echo 
"<P ALIGN='right'><I>Si no conoce el ID de Cliente, presione aquí <a href='dudaID.php' onClick='window.open(this.href,'Ventana','height=500,width=750,toolbar=0,status=0,menubar=0,resizable=0,location=0,scrollbars=0');'>Obtener ID</a></I></P>";
?>

dudaID.php
Código PHP:
...
//selecciono y conecto a la tabla
//muestro datos según el nro de documento ingresado
...
echo 
"<p align='center'>N° de ID: <input name='b_nroID' type='text' class='input3' id='b_nroID' size='25' value='".$fila[nroID]."' readonly='true'></p>";
echo 
"<P ALIGN='center'><input type='submit' name='cerrar' value='Cerrar' class='bt' onClick='javascript:self.close()'></P>"
Intenté agregar lo siguiente pero sin resultados:

Código PHP:
<script language="javascript">
function 
envia(valor) {
window.opener.document.form1.p_idCliente.value valor;
close();
}
</script>
//-------
...
$valor = $fila[nroID];
echo "<P ALIGN='center'><input type='submit' name='cerrar' value='Cerrar' class='bt' onClick='javascript:opener.location.reload(true);self.close();envia($valor);'></P>"; 
Reitero las disculpas si el tema ya estaba y no lo ví (o no lo interpreté bien) y por lo extenso del mensaje pero me gusta explicar lo mejor posible... Gracias desde ya y saludos.

PD: coloqué la consulta aquí, ya que creo que es el código JavaScript el que no me funciona...
  #2 (permalink)  
Antiguo 28/10/2009, 06:39
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Pasar dato de un Pop-Up a su página llamadora...

window.opener.document.forms['form1'].elements['p_idCliente'].value
  #3 (permalink)  
Antiguo 28/10/2009, 08:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Pasar dato de un Pop-Up a su página llamadora...

Hola

Está en ASP pero sin problemas para PHP, no??
Código javascript:
Ver original
  1. <script type="text/javascript">
  2. function enviar_datos_cliente(){
  3.         window.opener.document.form1.<%=campo%>.value ='<%=razon%>';        
  4.         window.opener.document.form1.camp2.value ='<%=cliente%>';            
  5.         window.opener.document.form1.camp3.value ='<%=calle%>';
  6. self.close()
  7. }
  8.  
  9. </script>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 29/10/2009, 06:25
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 2 meses
Puntos: 3
De acuerdo Respuesta: Pasar dato de un Pop-Up a su página llamadora...

Muchas gracias a ambos, no solo por la molestia sino porque las dos soluciones funcionan a la perfección...

Paso en limpio para que vean:

Solución de maycolalvarez:

Código PHP:
<script language="javascript">
function 
envia(valor) {
     
window.opener.document.forms['form1'].elements['p_idCliente'].value valor;
     
close();
}
</script>
//-------
...
$valorID = $fila[nroID];
echo "<P ALIGN='center'><input type='submit' name='cerrar' value='Cerrar' class='bt' onClick='javascript:self.close();envia(".$valorID.");'></P>"; 

Solución de Adler:
(reemplazar '<%=' y '%>' por '<?=' y '?>' )

Código PHP:
<script language="javascript">
function envia2(valor){
     window.opener.document.form1.<?='p_idCliente'?>.value = valor;
     self.close();
}
</script>
//-------
...
$valorID = $fila[nroID];
echo "<P ALIGN='center'><input type='submit' name='cerrar' value='Cerrar' class='bt' onClick='javascript:self.close();envia2(".$valorID.");'></P>";

Como nota: saqué la parte que hacía refrescar la página llamadora (opener.location.reload(true);)...

¡Reitero las gracias y saludos!

Última edición por Hayi; 29/10/2009 a las 13:41 Razón: error de sintaxis en el código...
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




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