Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] actualizar ventana padre al cerrar la ventana hija

Estas en el tema de actualizar ventana padre al cerrar la ventana hija en el foro de Javascript en Foros del Web. Hola amigos del foro tengo un problema espero me puedan ayudar. tengo una pagina que hace una tabla dinamicamente en donde un boton abre una ...
  #1 (permalink)  
Antiguo 22/04/2013, 16:45
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
actualizar ventana padre al cerrar la ventana hija

Hola amigos del foro tengo un problema espero me puedan ayudar. tengo una pagina que hace una tabla dinamicamente en donde un boton abre una ventana nueva con un formulario. Al submit el formulario tengo una funcion return window open() esto me retorna a la ventana principal pero a veces recarga la pagina y a veces no.....quizas sea un problema de codigo

la ventana principal seria asi

Código HTML:
<p>[PHP]
print '<table width="100%"  border="1" cellpadding="1" cellspacing="1" bordercolor="#999999" style="cursor:pointer" >';

$query1 = mysql_query("SELECT * FROM citas WHERE  id_user='$id' AND fecha='$f_agenda' ORDER BY hora_inicio") or die("Error en query");	
$datos1 = mysql_fetch_array($query1);
$horacitaini = $datos1['hora_inicio'];	
$horacitafinal = $datos1['hora_final'];	
$ayuda= $media;
$contador =1; 
$cont = mysql_num_rows($query1);
	while($clock<=$horaf)
	
	{
	$id_p = $datos1['id_paciente'];
	$id_proc = $datos1['id_proced'];
	$status = $datos1['status'];
$query2 = mysql_query("SELECT nombre,apellido FROM pacientes WHERE id_paciente='$id_p'") or die("Error en query2");
$datos2 = mysql_fetch_array($query2);
$paciente = $datos2['nombre'].'&nbsp;'.$datos2['apellido'];

$query3 = mysql_query("SELECT * FROM procedimientos WHERE id_procedimiento ='$id_proc'") or die("Error en query3");
$datos3 = mysql_fetch_array($query3);
$procedimiento = $datos3['nombre_p'];
$valor = $datos3['valor'];

$desc = $paciente.$procedimiento.'&nbsp;&nbsp;&nbsp;'.'Bs '.$valor.'&nbsp;&nbsp;'.$status;
$contador = $contador%2;
//$cont = mysql_num_rows($query1);
echo $cont;
if ($cont ==0){
if ($contador==1){
	print ' <tr bgcolor="white" onmouseover=\'this.style.background="#666666"\' onmouseout=\'this.style.background="white"\' style="cursor:pointer">
    <td bgcolor="" >&nbsp;</td>
    <td bgcolor=""\ ><div align= "center"><a href="agendabox.php?f='.$f_agenda.'&p=0&idp2=0&stat=0&val=0&pro=0&idp=0&fecha='.$fech2.'&hora='.date("H:i",strtotime($media)).'" onclick="NewWindow(this.href,\'agenda\',\'500\',\'480\',\'yes\',\'center\');return false; window.location.reload();" onfocus="this.blur()"> <input type="submit" name="Submit" value="'.date("h:i",strtotime($media)).'" on></a></div></td>
    <td bgcolor="" onclick="javascript:show(); return false;" onfocus="this.blur()">&nbsp;</td>
  </tr>';
  }
  if($contador==0){
  print '<tr bgcolor="#f8f8f8" onmouseover=\'this.style.background="#666666"\' onmouseout=\'this.style.background="#F8F8F8"\' style="cursor:pointer">
    <td width="3%" bgcolor="" >&nbsp;</td>
    <td width="6%" bgcolor="" ><div align= "center"><a href="agendabox.php?f='.$f_agenda.'&p=0&idp2=0&stat=0&val=0&pro=0&idp=0&fecha='.$fech2.'&hora='.date("H:i",strtotime($media)).'"  onclick="NewWindow(this.href,\'agenda\',\'500\',\'480\',\'yes\',\'center\');return false; window.location.reload();" onfocus="this.blur()"><input type="submit" name="Submit" value="'.date("h:i",strtotime($media)).'"></a></div></td>
    <td width="91%" bgcolor="" onclick="javascript:show(); return false;" onfocus="this.blur()">&nbsp;</td>
  </tr>';
}

}
else{

	if($media==$horacitaini || $ayuda==$horacitaini){
	
		if ($contador==1){
	print ' <tr bgcolor="#EDF3FE" onmouseover=\'this.style.background="#666666"\' onmouseout=\'this.style.background="#EDF3FE"\' >
    <td bgcolor="" >&nbsp;</td>
    <td bgcolor="" ><div align= "center"><a href="agendabox.php?f='.$f_agenda.'&p='.$id_proc.'&idp2='.$id_p.'&stat='.$status.'&val='.$valor.'&pro='.$procedimiento.'&idp='.$paciente.'&fecha='.$fech2.'&hora='.date("H:i",strtotime($horacitaini)).'" onclick="NewWindow(this.href,\'agenda\',\'500\',\'480\',\'yes\',\'center\');return false; window.location.reload();" onfocus="this.blur()"> <input type="submit" name="Submit" value="'.date("h:i",strtotime($horacitaini)).'" on></a></div></td>
    <td bgcolor="" onclick="javascript:show2(); return false;" onfocus="this.blur()">&nbsp;'.$desc.'</td>
  </tr>';
  }
  if($contador==0){
print '<tr bgcolor="#EDF3FE" onmouseover=\'this.style.background="#666666"\' onmouseout=\'this.style.background="#EDF3FE"\' >
    <td width="3%" bgcolor="" >&nbsp;</td>
    <td width="6%" bgcolor="" ><div align= "center"><a href="agendabox.php?f='.$f_agenda.'&p='.$id_proc.'&idp2='.$id_p.'&stat='.$status.'&val='.$valor.'&pro='.$procedimiento.'&idp='.$paciente.'&fecha='.$fech2.'&hora='.date("H:i",strtotime($horacitaini)).'" onclick="NewWindow(this.href,\'agenda\',\'500\',\'480\',\'yes\',\'center\');return false; window.location.reload();" onfocus="this.blur()"><input type="submit" name="Submit" value="'.date("h:i",strtotime($horacitaini)).'"></a></div></td>
    <td width="91%" bgcolor="" onclick="javascript:show2(); return false;" onfocus="this.blur()">&nbsp;'.$desc.'</td>
  </tr>';
}

$media = dif($horacitafinal,"00:30:00");
$clock=   $media;

$datos1 = mysql_fetch_array($query1);
$horacitaini = $datos1['hora_inicio'];	
$horacitafinal = $datos1['hora_final'];	

}
		else{
	if ($contador==1){
	print ' <tr bgcolor="white" onmouseover=\'this.style.background="#666666"\' onmouseout=\'this.style.background="white"\' >
    <td bgcolor="" >&nbsp;</td>
    <td bgcolor="" ><div align= "center"><a href="agendabox.php?f='.$f_agenda.'&p=0&idp2=0&stat=0&val=0&pro=0&idp=0&fecha='.$fech2.'&hora='.date("H:i",strtotime($media)).'" onclick="NewWindow(this.href,\'agenda\',\'500\',\'480\',\'yes\',\'center\');return false; window.location.reload();;" onfocus="this.blur()"> <input type="submit" name="Submit" value="'.date("h:i",strtotime($media)).'" on></a></div></td>
    <td bgcolor="" onclick="javascript:show(); return false;" onfocus="this.blur()">&nbsp;</td>
  </tr>';
  }
  if($contador==0){
  print '<tr bgcolor="#f8f8f8" onmouseover=\'this.style.background="#666666"\' onmouseout=\'this.style.background="#F8F8F8"\' >
    <td width="3%" bgcolor="" >&nbsp;</td>
    <td width="6%" bgcolor="" ><div align= "center"><a href="agendabox.php?f='.$f_agenda.'&p=0&idp2=0&stat=0&val=0&pro=0&idp=0&fecha='.$fech2.'&hora='.date("H:i",strtotime($media)).'"  onclick="NewWindow(this.href,\'agenda\',\'500\',\'480\',\'yes\',\'center\');return false; window.location.reload();" onfocus="this.blur()"><input type="submit" name="Submit" value="'.date("h:i",strtotime($media)).'"></a></div></td>
    <td width="91%" bgcolor="" onclick="javascript:show(); return false;" onfocus="this.blur()">&nbsp;</td>
  </tr>';
}

}
}	
   $media = sumahoras($media,"00:30:00");
$ayuda = dif($media,'00:30:00');
$contador = $contador+1;
 $clock= sumahoras($clock,"00:30:00");  
}

print '</table>';
//print '</form>'
[/PHP]
</form> </p> 
la ventana se llama mediante NewWindow() y la ventana hija donde esta el formulario es asi

Código HTML:
<body>
<form name="form1" method="post" action="agendabox.php" onSubmit="<?php echo 'return window.open(\'agenda.php?dia='.$d.'&mes='.$m.'&ano='.$y.'&Month='.$M.'&salir=gracias\',\'ventanaprincipal\'); return false; window,opener.location.reload();self.close();' ?>">
  <table width="500"  border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td colspan="3"><input name="fecha" type="text" class="caja" id="fecha" value="<?php echo $fecha_a; ?>" size="30"> </td>
      <td><?php echo $hora;?></td>
      <td width="53"><input name="hora" type="text" id="hora" size="7" value="<?php echo $hora;?>"> </td>
      <td colspan="2"><input name="guardar" type="submit" id="guardar" value="Guardar"></td>
      <td><input type="submit" name="Submit3" value="Historia"></td>
      <td><input name="proc"  type="hidden" id="proc" size="12" value="<?php echo $idproc; ?>"></td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  
  </table>
</form>

[PHP]

if (isset($_POST['guardar'])){

$hora = $_POST['hora'];
$paciente_name = $_POST['pacientes'];
$proc = $_POST['procedimiento'];
$valor = $_POST['valor'];
$obs = $_POST['observaciones'];
$status = $_POST['status'];
$tiempo = $_POST['tiempo'];
$fecha = $_POST['fecha'];
$fecha_data = $_POST['fecha2'];
$id_paciente = $_POST['id_pac'];
$id_procedimiento = $_POST['proc'];
$hora = $hora.":00";
$hora = date("G:i:s",strtotime($hora));
echo $hora;
$tiempo = "00:".$tiempo.":00";
$horafinal = sumahoras($hora,$tiempo);

//echo $fecha;
//echo $fecha_data;
$fechadata = explode("-",$fecha_data);
$ano= $fechadata[0];
$mes= $fechadata[1];
$dia= $fechadata[2];

$query= mysql_query("INSERT INTO citas(id_user,id_paciente,id_proced,fecha,hora_inicio,hora_final,status) VALUES('$id','$id_paciente','$id_procedimiento','$fecha_data','$hora','$horafinal','$status')") or die("ERROR en insertar");
if($query){
//echo $hora;
header("location:agenda.php?dia=$dia&mes=$mes&ano=$ano&Month=&salir=gracias ");
}

}
[/PHP]
</body>

Cualquier ayuda gracias!!
  #2 (permalink)  
Antiguo 22/04/2013, 17:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: actualizar ventana padre al cerrar la ventana hija

Hola:

Debes considerar que este foro no siempre es visitado por conocedores de otros lenguajes (php en este caso concreto...)

Hay cosas que no entiendo...

onsubmit="return window.open()"...

open no devuelve false, así que el return no veo su sentido.

Cuando respondas, inserta el código que reconoce el navegador (ver código fuente)...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 22/04/2013, 17:52
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: actualizar ventana padre al cerrar la ventana hija

gracias por responder asi lo ve el navegador
Código HTML:
<body>

<form name="form1" method="post" action="agendabox.php" onSubmit="return window.open('agenda.php?dia=24&mes=04&ano=2013&Month=Abril&salir=gracias','ventanaprincipal'); return false; window,opener.location.reload();self.close();">
  <table width="500"  border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td colspan="3"><input name="fecha" type="text" class="caja" id="fecha" value="24 de Abril de 2013" size="30"> </td>
      <td>07:00</td>
      <td width="91"><input type="submit" name="Submit" value="Cerrar"></td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td width="91">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">Hora</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td width="53"><input name="hora" type="text" id="hora" size="7" value="07:00"> </td>
      <td colspan="2"><input name="guardar" type="submit" id="guardar" value="Guardar"></td>
      <td width="197">&nbsp;</td>
      <td><input name="id_pac"  type="hidden" id="id_user" size="12" value="0"></td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">Paciente:</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="3"><select name="pacientes" id="pacientes" style="width:200px" onChange="mostrarValor2(this.value);">
        <option selected >
        Seleccione -----        </option>
                <option value=" 1 " > Stefany&nbsp;Iglesias </option>
                <option value=" 3 " > Alfredo&nbsp;Solanilla </option>
                <option value=" 5 " > Francisco&nbsp;Cova </option>
                <option value=" 6 " > Carlos&nbsp;Marquez </option>
              </select></td>
      <td><input type="submit" name="Submit3" value="Historia"></td>
      <td><input name="proc"  type="hidden" id="proc" size="12" value="0"></td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">Procedimiento:</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4"><select name="procedimiento" id="select3" onChange="mostrarValor(this.value);">
        <option selected>
        Seleccione -----        </option>
                <option value=" 250/1 " > limpieza </option>
                <option value=" 450/2 " > Extraccion </option>
              </select></td>
      <td><input name="fecha2"  type="hidden" id="fecha2" size="13" value="2013-04-24"></td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Status:</td>
      <td width="106">&nbsp;</td>
      <td colspan="2">Tiempo en minutos </td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2"><select name="status" id="select5">
        <option selected>
        Seleccione -----        </option>
        <option>Esperando</option>
        <option>Atendiendo</option>
        <option>Confirmado</option>
        <option>No Confirmo</option>
        <option>Cancelo</option>
      </select></td>
      <td width="53"><input name="tiempo" type="text" id="tiempo2" size="5"></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">Valor:</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">Bs
      <input name="valor" type="text" id="valoreninput" size="10" value=""></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4">Observaciones:</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="4" rowspan="3"><textarea name="observaciones" cols="30" id="observaciones"></textarea></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
</form> 
return window.open me regresa a la ventana principal y la deberia actualizar pero no siempre lo hace no se por que
  #4 (permalink)  
Antiguo 22/04/2013, 19:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: actualizar ventana padre al cerrar la ventana hija

Respondiendo a la pregunta concreta
Cita:
actualizar ventana padre al cerrar la ventana hija
hay una página que abre un form en una nueva ventana (window.open)

abre_form.html

Código:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
</head>
<body>
<button onclick="window.open('form.html','nv','width=500,height=500')">ventana</button>

</body>
</html>
form.html

Código:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
</head>
<body>
<button onclick="opener.location.href='abre_form.html?x=1'; self.close();">Cerrar</button>

</body>
</html>
Se cierra la ventana y se recarga la página principal, el parámetro se pasa solo a efectos de que verifiques.

Pregunto, a que hay que atenerse, a tu pregunta, o a tu código?, que a todo esto, no se sabe bien que pretende hacer

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 22/04/2013, 20:01
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: actualizar ventana padre al cerrar la ventana hija

Gracias por responder, podria utilizar

opener.location.href='abre_form.html?x=1'; self.close();" asi:
Código HTML:
<form name="form1" method="post" action="agendabox.php" onSubmit="<?php echo 'opener.location.href='\'agenda.php?dia='.$d.'&mes='.$m.'&ano='.$y.'&Month='.$M.'&salir=gracias\',\'ventanaprincipal\''; self.close();' ?> 
es decir que ejecute el php y vuelva a la pagina principal actualizada?

Última edición por claudinho; 22/04/2013 a las 20:18
  #6 (permalink)  
Antiguo 22/04/2013, 20:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: actualizar ventana padre al cerrar la ventana hija

Cita:
Iniciado por claudinho Ver Mensaje
Gracias por responder, podria utilizar

opener.location.href='abre_form.html?x=1'; self.close();" asi:
Código HTML:
<form name="form1" method="post" action="agendabox.php" onSubmit="<?php echo 'opener.location.href='\'agenda.php?dia='.$d.'&mes='.$m.'&ano='.$y.'&Month='.$M.'&salir=gracias\',\'ventanaprincipal\''; self.close();' ?> 
es decir que ejecute el php y vuelva a la pagina principal actualizada?
podría ser, es cuestion de que pruebes, o bien que en el submit te actualice la pagina padre y dejar que agendabox.php (que se va a abrir en la nueva ventana), imprima un self.close(), tras ejecutar las acciones que realice
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 23/04/2013, 07:32
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: actualizar ventana padre al cerrar la ventana hija

Gracia por la respuesta tiene mucha logica tu solucion quite el evento onSubmit para dejar que ejecute el php y luego en el php al hacer el query
Código PHP:
if($query){
//echo $hora;
//header("location:agenda.php?dia=$dia&mes=$mes&ano=$ano&Month=&salir=gracias ");
 
echo "<script language='JavaScript'> self.close();</script>"; }


Pero pasa lo mismo, ejecuta el query cierra la ventana pero no actualiza los datos de la ventana padre sino hasta despues que vuelvo a recargar la pagina manualmente. Por que pasa esto? alguna idea?
  #8 (permalink)  
Antiguo 23/04/2013, 08:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: actualizar ventana padre al cerrar la ventana hija

Primer odejemos en claro lo que te señalé antes, no es lo mismo actualizar al cerrar que cerrar tras hacer un submit y actualizar la ventana padre

abre_fom.html
Código:
 <!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
</head>
<body>
<button onclick="window.open('form.php','nv','width=500,height=500')">ventana</button>
</body>
</html>

form.php

Código:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
</head>
<body>
<form action="procesa.php" onsubmit="opener.location.href='abre_form.html?<?php echo time(); ?>';" method="post">
	ingrese un valor <input type="text" name="demo" value="" />
	<input type="submit" value="procesar"/>
</form>
</body>
</html>
le agregamos un parámetro único con time(), para prevenir que vuelva a leer de la caché.

procesa.php

Valor de post demo = <b>
<?php
echo $_POST['demo'];
?>
</b>
<br />
Acciones de php
<br />
// actualizamos bd...
<br />
// enviamos email....
<br />
si todo ok....

Código:
<?php
echo "
<script>
setTimeout(function() {
    self.close();
}, 4000)
</script>
";
?>
imprimo la script con setTimeout para darle un pequeño delay que te permita verificar que lo pasado por post se recibió correctamente.
Desde luego el echo de la script que cierra debería generarse con un condicional que compruebe que lo que hayas hecho con php se ejecutó correctamente.

Demo
http://foros.emprear.com/javascript/...abre_form.html
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 23/04/2013, 15:52
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: actualizar ventana padre al cerrar la ventana hija

Gracias por el demo esta genial lo implemente asi

la pagina agendabox.php lleva el form

Código HTML:
<form name="form1" method="post" action="agendar.php"  onSubmit="<?php echo 'opener.location.href=\'agenda.php?dia='.$d.'&mes='.$m.'&ano='.$y.'&Month='.$M.'&salir=gracias\' echo time();\''; ?>"> 

luego en agendar.php

Código PHP:
<?php

if ($_POST['Submit']){
--
ejecuto un query

if($query){
echo 
"
<script>
setTimeout(function() {
    self.close();
}, 3000)
</script>
"
;
}
}
?>
Sin embargo hace el query hace el delay y cierra la ventana pero siguen sin aparecer los datos me esta volviendo loco
  #10 (permalink)  
Antiguo 23/04/2013, 16:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: actualizar ventana padre al cerrar la ventana hija

Primero mirá esto
Código PHP:
<?php
$d 
"D";
$m "M";
$y "Y";
$M "MM";
?>


<form name="form1" method="post" action="agendar.php"  onSubmit="<?php echo 'opener.location.href=\'agenda.php?dia='.$d.'&mes='.$m.'&ano='.$y.'&Month='.$M.'&salir=gracias\' echo time();\''?>"> 



<form name="form1" method="post" action="agendar.php"      
onsubmit="<?php echo "opener.location.href='agenda.php?dia=$d&mes=$m&ano=$y&Month=$M&salir=gracias&time="time() . "'"?>;"> 
</form>
Ejecutalo y mirá el código fuente en el navegador (estás imprimiendo echo time() como una cadena)
Luego, no entiendo muy bien la idea, pero me parece que tu problema es que recargás la página principal en el submit, pero hacer el submit significa "enviar los datos" no que el php de agendar.php haya sido ejecutado, por lo que los cambios no se han producido aun.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 23/04/2013, 21:02
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: actualizar ventana padre al cerrar la ventana hija

entiendo, pero en donde deberia recargar la pagina principal ya que le tengo que pasar las variables de algun modo
  #12 (permalink)  
Antiguo 23/04/2013, 21:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: actualizar ventana padre al cerrar la ventana hija

Sinceramente no se entiende que querés pasar ni de donde,
De esta forma le paso a la página principal variables al hacer el submit del form, y luego le paso tambien variables desde el procesar.php, que es lo que va en el action del form

abre_form.php
Código PHP:
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
</head>
<body>
<button onclick="window.open('form.php','nv','width=500,height=500')">ventana</button>
<p>Variables<br /><b>get en el action de form.php y luego del delay lo que se recibió por $_POST['demo'] en procesa.php</b></p>
<?php
if(isset($_GET['a'])){
echo 
$_GET['a'];
}
?>
</body>
</html>
form.php

Código PHP:
<?php
$a 
"A";
?>
<!DOCTYPE html>
<html lang="es-ar">
<head>
<meta charset="utf-8" />
<title>Html5</title>
</head>
<body>
<form action="procesa.php" onsubmit="opener.location.href='abre_form.php?a=<?php echo $a?>&amp;tiempo=<?php echo time(); ?>';" method="post">
    ingrese un valor <input type="text" name="demo" value="" />
    <input type="submit" value="procesar"/>
</form>
</body>
</html>
procesa.php

Código PHP:
Valor de post demo = <b>
<?php
$tiempo 
time();
$demo $_POST['demo'];
echo 
$_POST['demo'];
?>
</b>
<br />
Acciones de php
<br />
// actualizamos bd...
<br />
// enviamos email....
<br />
si todo ok....

<?php
echo "
<script>
setTimeout(function() {
opener.location.href='abre_form.php?a=$demo&tiempo=$tiempo';
    self.close();
}, 4000)
</script>
"
;
?>
La demo queda así, son todos php
http://foros.emprear.com/javascript/.../abre_form.php

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #13 (permalink)  
Antiguo 24/04/2013, 08:19
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: actualizar ventana padre al cerrar la ventana hija

Emprear estuve pensando en lo que dijiste acerca del onsubmit significa enviar datos y no que se haya ejecutado el php primero necesariamente. Por lo que opte por eliminar el evento onSubmit y dejar que ejecute el codigo php y al final del codigo php coloque lo siguiente

Código PHP:
if($query){

echo 
'
<script>
opener.location.href=\'agenda.php?dia='
.$dia.'&mes='.$m.'&ano='.$y.'&Month='.'&salir=gracias\';
opener.window.location.reload();
    window.close();
</script>
'
;

Hasta ahora me ha estado funcionando bien.

Quiero agradecerte por tomarte el tiempo para ayudarme, este foro siempre me ha ayudado mucho gracias a gente como tu.

Etiquetas: cerrar, formulario, funcion, hija, input, padre, php, select, ventana
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 09:37.