Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/06/2010, 05:23
jesusjj
 
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.