Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ventana modal con contenido switch/case y php

Estas en el tema de Ventana modal con contenido switch/case y php en el foro de Frameworks JS en Foros del Web. Buenas tardes: Quería hacer una consulta, a ver si alguien me puede echar una mano, ya que he visto cosas que podrían orientarme en la ...
  #1 (permalink)  
Antiguo 28/06/2010, 08:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 16 años, 5 meses
Puntos: 2
Pregunta Ventana modal con contenido switch/case y php

Buenas tardes:

Quería hacer una consulta, a ver si alguien me puede echar una mano, ya que he visto cosas que podrían orientarme en la búsqueda del foro, pero no lo que necesito exactamente.

Les comento la idea brevemente y a ver si me pueden recomendar algo.

Estoy montando un sistema de gestión para una asociación sin ánimo de lucro, que genere diplomas para distintos eventos, gestione las fichas de asociados, cuotas, etc.

El tema es que para distintas 'acciones' he creado una 'ventana modal' apoyándome en un div oculto, que muestro según lo necesite. Para la ventana modal 'básica' no he encontrado problemas, pero sí para casos más complicados, ya que lo que he creado es una 'base' y lo que quiero es utilizarla mostrando distinto contenido en función de dónde la invoque.

Las funciones que puede tener la ventana son:
- Formulario secundario, para pasar (o no necesariamente un valor a un formulario principal)
- Ventana de validación/confirmación
- Formulario de actualización de datos,
- ...

Hasta ahora lo que he hecho es que cuando invoco a la ventana me creo una variable global en PHP que leo posteriormente y en función del valor, me hace en el div contenedor un 'include' u otro, con un switch/case.

Al principio lo veía como una opción lógica, hasta que me he dado cuenta que para que reconocer la variable global, necesita recargar la página, ya que el div contenedor de la ventana modal, está siempre presente, pero con un 'display: none'. Aquí es donde surge el problema, sobretodo cuando lo que estoy mostrando es una ventana de validación / comprobación con los valores de un formulario relleno, ya que me obliga a recargar la página o ha hacer una chapuza intermedia que me da hasta vergüenza comentarla :p.

Como framework javascript estoy usando jQuery y no sé si alguna de las ventanas modales que existen para jQuery me solucionaría el problema de carga recibiendo las variables globales.

Quizá no sea la mejor vía para indicar qué contenido cargar lo de las variables globales, pero no se me ha ocurrido cómo hacerlo y con javascript aún no me termino de soltar.

Otra cosa, también estoy utilizando el framework XAJAX, por si alguien lo ve como una opción para hacer lo que busco.

Muchas gracias de antemano.

Saludos
  #2 (permalink)  
Antiguo 28/06/2010, 16:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Ventana modal con contenido switch/case y php

Buenas, creo que lo voy a resolver con algo así:
http://dixso.net/jquery/css-popup-jquery-ajax/

Ya os contaré. Creo que es buena idea pasarlo por $_GET[] mediante AJAX. Ahora, a ver si me aclaro sin desmontar mucho lo que tengo hecho.

Ciao
  #3 (permalink)  
Antiguo 30/06/2010, 05:23
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Ventana modal con contenido switch/case y php

Buenos días:

Ya lo resolví al final de la siguiente manera (a falta de hacer mil pruebas cuando tenga tiempo):

jQuery:
Código Javascript:
Ver original
  1. function cargaModal(URL) {
  2.     $("#cargaContenido").load(URL, function(){
  3.         $("#modalMain").slideDown("slow");
  4.     })
  5. }

HTML:
Código HTML:
Ver original
  1. <a href="#"><img id="altaAlumno" name="altaAlumno" class="openModal" src="<?php echo RUTA_IMG ?>newAsocBT.png" width="20px" title="alta de alumno" onclick="cargaModal('<?php echo RUTA_PHP; ?>contenidoModal.php?modal=altaAsociado')" /></a>
  2.  
  3. <!-- la ventana -->
  4.  
  5. <div id="modalMain" class="overlay">
  6.     <div class="modalBlock">
  7.  
  8.         <table cellpadding="0" cellspacing="0">
  9.             <tr>
  10.                 <td class="modalBlockHeader">
  11.                     <a href="#"><img src="<?php echo RUTA_IMG ?>close.png" title="cerrar" width="30px" class="closeModal" /></a>
  12.                     <p class="titulo">Alta de Alumno</p>
  13.                 </td>
  14.             </tr>
  15.             <tr>
  16.                 <td id="cargaContenido" class="modalBlockContent">                        
  17.  
  18.                 </td>
  19.             </tr>
  20.             <tr>
  21.                 <td class="modalBlockFooter">&nbsp;</td>
  22.             </tr>
  23.         </table>
  24.        
  25.     </div>
  26. </div>

CSS:
Código CSS:
Ver original
  1. /*######################################################################*/
  2. /*          VENTANA MODAL                                               */
  3. /*######################################################################*/
  4.  
  5. .overlay{
  6.      display: none;
  7.      position: fixed;
  8.      top: 0;
  9.      left: 0;
  10.      width: 100&#37;;
  11.      height: 100%;
  12.      background: url("../../images/trans.png") repeat;
  13.      z-index:1001;  
  14. }
  15.  
  16. .modalBlock {
  17.     display: block;
  18.     width: 720px;
  19.     position: absolute;
  20.     left: 25%;
  21.     top: 15%;
  22.     height: 50%;
  23.     z-index: 1002;        
  24. }
  25.  
  26. .modalBlock table { width: 100%; }
  27.  
  28. .modalBlockHeader { background: url("../../images/modalHeader.png") no-repeat; height: 51px; }
  29. .modalBlockHeader .titulo { font-weight: bold; padding-left: 30px; margin-top: 20px; margin-bottom: -5px; }
  30. .modalBlockHeader a img { float: right; margin-top: -3px; margin-right: 0; padding-top: 0; border: 0; }
  31.  
  32. .modalBlockContent { background: url("../../images/modalBody.png") repeat-y center; padding: 15px; margin: 0; }
  33. .modalBlockFooter { background: url("../../images/modalFooter.png") no-repeat; height: 25px; }
  34.  
  35. .modal {
  36.      display: block;
  37.      position: absolute;
  38.      top: 25%;
  39.      left: 25%;
  40.      width: 100%;
  41.      height: 100%;
  42.      padding: 16px;
  43.      background: #fff;
  44.      color: #333;
  45.      z-index:1005;
  46.      overflow: auto;
  47. }
  48.  
  49. /*#####################*/

PHP:
Código PHP:
Ver original
  1. if(!isset($_GET['modal'])){
  2.         echo "no carga nada";
  3.     }else{
  4.         $contenido = $_GET['modal'];
  5.     }
  6.    
  7.     $recarga = "Si aparece este mensaje, pulsa el bot&oacute;n: <input type='button' value='...' onclick=\"window.location.reload()\" />";
  8.    
  9.      switch ($contenido) {
  10.         case "altaAsociado": include("formAsociado.php"); break;
  11.         case "recarga": echo $recarga; break;
  12.        
  13.         default: echo $recarga; break;                            
  14.     }

Lo único, que en este último php me ha tocado poner de nuevo todos los includes, porque no me los carga e intentando meter este fichero en el case, la url enviada por GET hacía que se enviaran cosas raras, bueno, lo he descartado porque no me convencía lo que hacía.

Espero que le pueda servir a alguien.

Etiquetas: contenido, modal, php, ventanas
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:14.