Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/04/2012, 04:54
Avatar de Naahuel
Naahuel
 
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Pasar variable a ventana modal jquery

Creo comprender.

Estudiá este ejemplo:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  3.     <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" />
  4.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
  5.     <script type="text/javascript">
  6.        
  7.         $(document).ready(function() {
  8.             //obtener el elemento contenedor del dialogo y
  9.             //guardarlo en una variable, ya que lo usamos con frecuencia
  10.             var $dialog_contenedor = $('#imgprod');
  11.            
  12.             //Usamos clases en lugar de id, la idea es tener muchos de estos
  13.             //elementos en la página
  14.             $('.dialog_link').click(function(evento){
  15.                 //el link que clickeamos tiene un atributo con
  16.                 //un ID de una galeria.
  17.                 var gallery_id = $(this).data('gid');
  18.                
  19.                 //con ese ID, obtenemos las fotos o hacemos lo que queramos
  20.                 //una vez que tengamos un resultado, lo ponemos como html del contenedor
  21.                 //del dialogo.
  22.                 //para ejemplificar, sólo lo muestro dentro del dialogo
  23.                 $dialog_contenedor.html('<p>'+ gallery_id +'</p>');
  24.                
  25.                 //para finalizar, abro el dialogo
  26.                 //Si se obtienen las fotos con AJAX, por ejemplo,
  27.                 //esta accion se debe realizar una vez que termine la petición
  28.                 $dialog_contenedor.dialog('open');
  29.                
  30.                 //evito la acción por defecto del enlace
  31.                 evento.preventDefault();
  32.             });
  33.            
  34.             //crear el dialogo
  35.             $dialog_contenedor.dialog({
  36.                 autoOpen: false,
  37.                 width: 500,
  38.                 height: 500,
  39.                 show: 'fade',
  40.                 hide: 'fade',
  41.                 modal: true,
  42.                 buttons: {
  43.                     "Cerrar": function() {
  44.                         $(this).dialog("close");
  45.                     }
  46.                 }
  47.                
  48.             });
  49.         });
  50.  
  51.  
  52.     <title></title>
  53. </head>
  54.    
  55.     <a href="#" class="dialog_link" data-gid="1">Fotos</a>
  56.     <a href="#" class="dialog_link" data-gid="2">Fotos</a>
  57.     <a href="#" class="dialog_link" data-gid="3">Fotos</a>
  58.    
  59.    
  60.     <div id="imgprod"></div>
  61. </body>
  62. </html>

Leé las notas que te puse en los comentarios del código.

Creo que es más correcto tener clases en lugar de ID's para los dialog_link, porque me imagino que el problema de antemano es que hay varios de esos en la página. Sino, no haría falta todo esto me imagino.

Modifico el ejemplo anterior para algo un poco más concreto:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  3.     <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" />
  4.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
  5.     <script type="text/javascript">
  6.        
  7.         $(document).ready(function() {
  8.             //obtener el elemento contenedor del dialogo y
  9.             //guardarlo en una variable, ya que lo usamos con frecuencia
  10.             var $dialog_contenedor = $('#imgprod');
  11.            
  12.             //Usamos clases en lugar de id, la idea es tener muchos de estos
  13.             //elementos en la página
  14.             $('.dialog_link').click(function(evento){
  15.                 //el link que clickeamos tiene un atributo con
  16.                 //un ID de una galeria.
  17.                 var gallery_id = $(this).attr('data-gid');
  18.                
  19.                 //con ese ID, creamos un iframe que nos muestra
  20.                 //una galeria de Flickr.
  21.                 $dialog_contenedor.html('<iframe border="0" width="500" height="500" src="http://www.flickr.com/photos/diastema/sets/'+gallery_id+'/"></iframe>');
  22.                
  23.                 //para finalizar, abro el dialogo
  24.                 //Si se obtienen las fotos con AJAX, por ejemplo,
  25.                 //esta accion se debe realizar una vez que termine la petición
  26.                 $dialog_contenedor.dialog('open');
  27.                
  28.                 //evito la acción por defecto del enlace
  29.                 evento.preventDefault();
  30.             });
  31.            
  32.             //crear el dialogo
  33.             $dialog_contenedor.dialog({
  34.                 autoOpen: false,
  35.                 width: 500,
  36.                 height: 500,
  37.                 show: 'fade',
  38.                 hide: 'fade',
  39.                 modal: true,
  40.                 buttons: {
  41.                     "Cerrar": function() {
  42.                         $(this).dialog("close");
  43.                     }
  44.                 }
  45.                
  46.             });
  47.         });
  48.  
  49.  
  50.     <title></title>
  51. </head>
  52.    
  53.     <p><a href="#" class="dialog_link" data-gid="1037024">Toys</a></p>
  54.     <p><a href="#" class="dialog_link" data-gid="72157603448937963">The egg and i</a></p>
  55.     <p><a href="#" class="dialog_link" data-gid="72157600320979038">Scraps</a></p>
  56.    
  57.    
  58.     <div id="imgprod"></div>
  59. </body>
  60. </html>
__________________
nahueljose.com.ar