Foros del Web » Programando para Internet » Javascript »

Problema al intentar cerrar lightbox

Estas en el tema de Problema al intentar cerrar lightbox en el foro de Javascript en Foros del Web. Saludos a todos, tengo un problema con un lightbox, en la empresa donde trabajo estamos diseñando un sistema de trabajo general, en el hay una ...
  #1 (permalink)  
Antiguo 18/11/2010, 12:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema al intentar cerrar lightbox

Saludos a todos, tengo un problema con un lightbox, en la empresa donde trabajo estamos diseñando un sistema de trabajo general, en el hay una opcion para medir el tiempo de descanso que normalmente son 30min, para almorzar o cosas asi. la cuestion es que el medidor de descanso está hecho en javascript, eso funciona al pelo. el detalle es que lo estamos cargando en un lightbox para evitar que los usuarios si llegan a excederse se salgan del script sin enviar estos datos al servidor. el lightbox se carga y dentro contiene un formulario con los datos, eso funciona bien, luego se envian estos datos por post para almacenarlos en la BD. esto tambien funciona, el detalle es que luego que se envian los datos ya no aparace en el lightbox sino en una pagina nueva, ya intente con base target=_self y no funciona y cuando quiero cerrar el lightbox le doy la funcion window.close() pero me cierra el navegador completo, no solo el lightbox.

aca dejo el codigo a ver si alguno me puede ayudar.

Muchas gracias de antemano

Código PHP:
Ver original
  1. <?php
  2. require("aut_verifica2.inc.php");//cargo variables de autentificacion bd
  3. $nivel_acceso=7; // definir nivel de acceso para esta p?gina.
  4. if ($nivel_acceso > $_SESSION['usuario_nivel']){
  5. echo"<script>alert('No posees permisos para acceder');</script>";
  6. }
  7.  
  8. $usuarlogin=$_SESSION['usuario_login'];
  9. $nomusuar=$_SESSION['usuario_nombre'];
  10. $fechaGuardada = $_SESSION["ultimoAcceso"];
  11.     $ahora = date("Y-n-j H:i:s");
  12.     $tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
  13.    
  14.     if($tiempo_transcurrido >= 600) {
  15.      //si pasaron 10 minutos o más
  16.       session_destroy(); // destruyo la sesión
  17.       echo"<script>alert('Ya no posees permisos para acceder, presiona F5 en tu navegador');</script>"; //envío al usuario a la pag. de autenticación
  18.       //sino, actualizo la fecha de la sesión
  19.     }else {
  20.     $_SESSION["ultimoAcceso"] = $ahora;
  21.    }
  22.    
  23. include("scripts/funciones.php");
  24. include("scripts/variables.php");
  25. include("../conexion.php");
  26. if($_POST){
  27.    
  28. $tiempouno=$_POST["display"];
  29. $tiempodos=$_POST["displayb"];
  30.  
  31. $tiempouno = substr ("$tiempouno", 0, 5);
  32. $tiempodos = substr ("$tiempodos", 0, 5);
  33.  
  34. $procesado = "0";
  35.  
  36.     mysql_query("insert into descanso (tiempouno,tiempodos,fechados,procesado,rac) values ('$tiempouno','$tiempodos','$fechados','$procesado','$nomusuar')",$conn);
  37.     ?>

Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/javascript">
  2.     alert('<?php echo $nomusuar; ?> Se ha registrado tu tiempo de descanso.');
  3.     window.close();
  4.     </SCRIPT>

Código PHP:
Ver original
  1. <?php
  2. }

Código HTML:
Ver original
  1. <base target="_self">
  2. <link href="../estilos/siar20.css" rel="stylesheet" type="text/css">
  3.      <table width="656" height="306" border="0" align="center" class="plan">
  4.        <tr>
  5.          <td width="646" align="center">
  6.            <form name="crono" id="crono" method="post" action="descanso.php">
  7.              <p align="center" class="plan" style="color:#660000"><strong>Tiempo de descanso</strong></p>
  8.              <table width="522" align="center">
  9.                <tr>
  10.                  <td width="110" height="45" align="center"><img id="img" src="../imagenes/reloj-arena-05.gif" width="64" height="64" align="middle" style="visibility:hidden"></td>
  11.                  <td width="113" align="center"><input type="text" size="8" class="Estilo38" name="display" value="30:00:0" style="color:#00F"></td>
  12.                  <td width="277">Tiempo Restante</td>
  13.                </tr>
  14.                <tr>
  15.                  <td height="40" align="center"><img src="../imagenes/excla-08.gif" width="48" height="48" id="img2" style="visibility:hidden" align="middle"></td>
  16.                  <td align="center"><input name="displayb" type="text" class="plan" value="00:00:0" size="8" style="color:#F00"></td>
  17.                  <td>Tiempo de Exceso</td>
  18.                </tr>
  19.                <tr>
  20.                  <td height="42">&nbsp;</td>
  21.                  <td><div align="center">
  22.                      <input type="button" name="iniciar" value="Comenzar" onClick="IniciarCrono();mostrar();">
  23.                  </div></td>
  24.                  <td><input type="submit" name="Parar" value="Detener" onClick="DetenerCrono();DetenerCronob()" /></td>
  25.                </tr>
  26.              </table><br><br><br>
  27.              <table width="625" align="center">
  28.                <tr>
  29.                  <td width="893"><p align="justify" class="plan" style="color:#660000"><strong>Evita Amonestaciones, recuerda que al excederte en el tiempo  de descanso estas perjudicando a tus compa&ntilde;eros y a ti mismo. No excedas los  30 Minutos.</strong></p></td>
  30.                </tr>
  31.              </table>
  32.            </form>
  33.          </td>
  34.        </tr>
  35.      </table>

Este documento HTML no tiene etiquetas body ni head ya que es un iframe, ya probe colocando las etiquetas por si acaso pero aun no funciona, agradezco toda la ayuda que me puedan brindar.
  #2 (permalink)  
Antiguo 18/11/2010, 13:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema al intentar cerrar lightbox

ya resolvi el problema, inclui un iframe dentro del lightbox que recibe los datos del form. y solo le puse codigo php, al momento de recibir la data habilito un boton en la ventana padre del lightbox que me permite cerrarlo. dejo el codigo por si a alguien le sirve

Archivo descanso.php

Código HTML:
Ver original
  1. <?php
  2. require("aut_verifica2.inc.php");//cargo variables de autentificacion bd
  3. $nivel_acceso=7; // definir nivel de acceso para esta p?gina.
  4. if ($nivel_acceso > $_SESSION['usuario_nivel']){
  5. echo"<script>alert('No posees permisos para acceder');</script>";
  6. exit;
  7. }
  8.  
  9. $usuarlogin=$_SESSION['usuario_login'];
  10. $nomusuar=$_SESSION['usuario_nombre'];
  11. $fechaGuardada = $_SESSION["ultimoAcceso"];
  12.     $ahora = date("Y-n-j H:i:s");
  13.     $tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
  14.    
  15.     if($tiempo_transcurrido >= 600) {
  16.      //si pasaron 10 minutos o más
  17.       session_destroy(); // destruyo la sesión
  18.       echo"<script>alert('Ya no posees permisos para acceder, presiona F5 en tu navegador');</script>"; //envío al usuario a la pag. de autenticación
  19.       //sino, actualizo la fecha de la sesión
  20.     }else {
  21.     $_SESSION["ultimoAcceso"] = $ahora;
  22.    }
  23.    
  24. include("scripts/funciones.php");
  25. include("scripts/variables.php");
  26. ?>
  27. <base target="_self">
  28. <link href="../estilos/siar20.css" rel="stylesheet" type="text/css">
  29.      <table width="656" height="306" border="0" align="center" class="plan">
  30.        <tr>
  31.          <td width="646" align="center">
  32.            <form name="crono" id="crono" method="post" action="desc.php" target="descanso">
  33.              <p align="center" class="plan" style="color:#660000"><strong>Tiempo de descanso</strong></p>
  34.              <table width="522" align="center">
  35.                <tr>
  36.                  <td width="110" height="45" align="center"><img id="img" src="../imagenes/reloj-arena-05.gif" width="64" height="64" align="middle" style="visibility:hidden"></td>
  37.                  <td width="113" align="center"><input type="text" size="8" class="Estilo38" name="display" value="30:00:0" style="color:#00F"></td>
  38.                  <td width="277">Tiempo Restante</td>
  39.                </tr>
  40.                <tr>
  41.                  <td height="40" align="center"><img src="../imagenes/excla-08.gif" width="48" height="48" id="img2" style="visibility:hidden" align="middle"></td>
  42.                  <td align="center"><input name="displayb" type="text" class="plan" value="00:00:0" size="8" style="color:#F00"></td>
  43.                  <td>Tiempo de Exceso</td>
  44.                </tr>
  45.                <tr>
  46.                  <td height="42">&nbsp;</td>
  47.                  <td><div align="center">
  48.                      <input type="button" name="iniciar" value="Comenzar" onClick="IniciarCrono();mostrar();">
  49.                  </div></td>
  50.                  <td><input type="submit" name="Parar" value="Detener" onClick="DetenerCrono();DetenerCronob();habilitar();" /></td>
  51.                </tr>
  52.              </table><br><br><br>
  53.              <table width="625" align="center">
  54.                <tr>
  55.                  <td width="893"><p align="justify" class="plan" style="color:#660000"><strong>Evita Amonestaciones, recuerda que al excederte en el tiempo  de descanso estas perjudicando a tus compa&ntilde;eros y a ti mismo. No excedas los  30 Minutos.</strong></p></td>
  56.                </tr>
  57.              </table>
  58.            </form>
  59.          </td>
  60.        </tr>
  61.      </table>
  62. <iframe name="descanso" width="0" height="0" frameborder="0" align="middle" scrolling="no"></iframe>
  63. <button disabled class="lbAction" rel="deactivate" id="cerrar">Sair del tiempo de descanso</button>

frame desc.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. if($_POST){
  4.    
  5. $tiempouno=$_POST["display"];
  6. $tiempodos=$_POST["displayb"];
  7.  
  8. $tiempouno = substr ("$tiempouno", 0, 5);
  9. $tiempodos = substr ("$tiempodos", 0, 5);
  10.  
  11. $procesado = "0";
  12. $fechados = time();
  13.        
  14. require('../conexion.php');
  15. $ssql = "SELECT tiempouno,tiempodos,fechados,procesado,rac FROM fallas";
  16. $rs = mysql_query($ssql,$conn);
  17.  
  18.  
  19.     mysql_query("insert into descanso (tiempouno,tiempodos,fechados,procesado,rac) values ('$tiempouno','$tiempodos','$fechados','$procesado','$nomusuar')",$conn);
  20.     ?>
  21.     <script language="JavaScript" type="text/javascript">
  22.     alert('<?php echo $nomusuar; ?> Se ha registrado tu tiempo de descanso.');
  23.     </SCRIPT>
  24. <?php    
  25.    
  26. }
  27. ?>

y el script con el que habilito el boton para cerrar el lightbox

Código Javascript:
Ver original
  1. function habilitar() {
  2.   document.getElementById('cerrar').disabled = false;
  3. }

estoy usando el lightbox gone wild que pueden encontrar en http://particletree.com/features/lightbox-gone-wild/

Etiquetas: cerrar, lightbox
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 05:23.