Foros del Web » Programando para Internet » Javascript »

Popup y variable por refencia

Estas en el tema de Popup y variable por refencia en el foro de Javascript en Foros del Web. Hola, Necesito crear una página (php) para buscar empleados de una BBDD. Mi idea era de crear una página de busqueda de empleados y que ...
  #1 (permalink)  
Antiguo 18/10/2006, 08:44
 
Fecha de Ingreso: abril-2006
Mensajes: 76
Antigüedad: 18 años
Puntos: 0
Popup y variable por refencia

Hola,

Necesito crear una página (php) para buscar empleados de una BBDD. Mi idea era de crear una página de busqueda de empleados y que esta pagina devolviera el resultado del empleado elegido al formulario padre.

Pare ello tengo el formulario padre y el hijo(popup)

Simplemente quiero pasar el nombre del campo de texto del formulario del padre, al hijo para que este pueda escribir el resultado del empleado elegido. De esta manera este poup no tiene porque saber el nombre del campo de texto del padre (para poder reutilizarlo).

Resumiendo:
Padre: window.open("hijo.php",.....)
Padre: Pasar nombre de campo a hijo <- como?!?!?
Hijo: Buscar empleados...y elegir.
Hijo: objeto = empleado selecionado <- como?!?!?!

Saludos.
Yartax.
  #2 (permalink)  
Antiguo 18/10/2006, 09:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Puedes enviar un formulario hacia un popup (hijo)... puedes ver como se hace en las FAQs, y la búsqueda en la base de datos la realizas con ese parámetro:

<form action="hijo.php" method="get" target="nene" onsubmit="window.open('', 'nene', '')" >
<input type="text" name="empleado" />
<button type="submit" >Enviar</button>
</form>

y en hijo:

<?
...
$sql = "select * from tabla qhere empleado = '".$_GET["empleado"]."'";
...
?>

... si luego quieres pasarlo al padre debes considerar que es el objeto opener...

<body onload="opener.document.forms.elForm.empleado.valu e = '$row[nombre]'" >

Espero que te sirva.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 18/10/2006, 09:20
 
Fecha de Ingreso: abril-2006
Mensajes: 76
Antigüedad: 18 años
Puntos: 0
Bueno, mi idea no es enviar un formulario al hijo. El hijo simplemente muestra la tabla de empleados para elegir uno y devolver el codigo elegido a un campo texto al padre. Como bien dices, lo podrias hacer de esta manera pero el problema es si quieres utilizar el hijo en diferentes padres... O sea buscar el empleado desde varios formularios distintos. El tic de la question es que no puedo referenciar del modo window.opener.forms.... directamente en hijo porque pueden ser distintos y variados los padres. Mi idea era pasar al hijo por referencia el nombre del campo de texto del padre. El hijo simplemente tiene que asignar al campo referenciado el valor elegido y cerrarse.

No se si me he explicado bien.
  #4 (permalink)  
Antiguo 18/10/2006, 10:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Si quieres pasar datos a una ventana, puedes hacerlo siempre que lo hagas desde donde la has abierto:
ventana = window.open("destino.php");
...
ventana.document.forms.el_formulario.el_campo.valu e = "papi";

Pero esta no es una forma aconsejable porque si envías información a una página que aún no se ha cargado seguramente te devuelva un error, por lo que pienso que el formulario es más adecuado (es mi opinión)

Y con un formulario puedes enviar en distintos campos los datos necesarios para la respuesta (nombre del formulario y del campo destino)... luego envías los valores desde el hijo con opener y los campos variables entrecorchetados.
Incluso puede recibir el resultado otro formulario o cualquier tipo de variable, atributo...

<form name="receptor" ... >
<input type="text" name="empleado" />
... <!-- recibirá el empleado el formulario=receptor y campo empleado... -->
</form>

<form action="hijo.php"... >
<input type="hidden" name="formulario" value="receptor" />
<input type="hidden" name="campo" value="empleado" />
...
</form>

Suponiendo que abras el hijo con el segundo formulario, pasas el dato al padre con la siguiente instrucción:
opener.document.forms["<?=$_GET["formulario"];?>"]["<?=$_GET["campo"];?>"].value = dato_obtenido();

Te paso una página hecha con iframes que se comunican con su padre (en este caso se usa parent en vez de opener): gradientes

En la página cada selector de color es un iframe (la misma página con distintos parámetros)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 19/10/2006, 09:33
 
Fecha de Ingreso: abril-2006
Mensajes: 76
Antigüedad: 18 años
Puntos: 0
No acabo de entender como se debe hacer por formulario. Mi pega es que la ventana padre, tiene el link de buscar empleados dentro de un formulario que apunta al mismo padre por lo tanto no puedo hacer un formulario que apunte al popup, porque perderia el sentido de la navegación. No sé si me explico bien.

A modo de esquema tengo lo siguiente:

PADRE.PHP
<form name="menu2" action="PADRE.PHP"....>
<input type="text" name="plusempleado"> //campo para poner codigo empleado
<input type="submit" name="añadir"> //boton para añadir emplead
<img src="imagen.gif" onclick()=empleado_popup()> //para buscar empleados (abre venta hija, y esta debe devolver el resultado en el campo plusempleado)
</form>

¿Como le pasaria los parametros al popup sin modificar el destino del formulario del padre.PHP?

Grácias.
Yartax
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 13:54.