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

No consigo abrir ventana modal y pasarle una variable

Estas en el tema de No consigo abrir ventana modal y pasarle una variable en el foro de Frameworks JS en Foros del Web. Hola amigos, estoy intentando abrir una ventana modal que dentro lleva un formulario para hacer comentarios sobre un comentario que alguien haya escrito. Mi problema ...
  #1 (permalink)  
Antiguo 28/11/2012, 04:17
valago
Invitado
 
Mensajes: n/a
Puntos:
No consigo abrir ventana modal y pasarle una variable

Hola amigos, estoy intentando abrir una ventana modal que dentro lleva un formulario para hacer comentarios sobre un comentario que alguien haya escrito.
Mi problema es que no consigo insertar bien el subcomentario, ya que através de php no recoge bien el id de ese mensaje al que quiero escribirle un comentario. Me explico, puedo insertar varios comentario y siempre pasa el valor del ultimo comentario introducido.
Para eso he visto que hay que utilizar javascript o ajax, he intentado hacerlo de esta manera, ahora mismo estoy intentando llamar a la funcion modal desde esta funcion en javacript, pero no lo consigo. Tb necesito pasarle la id de ese mensaje en la funcion. Si me pudieran ayudar.
Aquí les detallo el codigo.

Este es el script
Código Javascript:
Ver original
  1. <script>
  2.    
  3.  function modal(){
  4.    
  5.     $(function() {
  6.  
  7.         $( "#myModal" ).dialog({
  8.             autoOpen: false,
  9.             height: 230,
  10.             width: 420,
  11.         });
  12.  
  13.         $( "#comment" )
  14.             .button()
  15.             .click(function() {
  16.                 $( "#myModal" ).dialog( "open" );
  17.                 alert ("aqui entra");
  18.             });
  19.     });
  20. }
  21. </script>



Esta es la ventana modal:

Código PHP:
Ver original
  1. <!-- Modal -->
  2. <div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
  3.     <div class="modal-header">
  4.         <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  5.         <h3 id="myModalLabel">Comment</h3>
  6.     </div>
  7.     <div class="modal-body">
  8.         <form name="submessage" action="inserSubMen.php?id=<?php echo urlencode("$id");?>" class="pub-form"  method="post">
  9.            <input type="text" value="<?php echo $_GET["id"]; ?>" />
  10.             <textarea name="comment" class="pub-message" rows="8"></textarea>
  11.     </div>
  12.     <div class="modal-footer">
  13.             <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
  14.             <input type="submit" class="btn btn-primary" value="<?php echo $i_INSERT; ?>">
  15.         </form>
  16.     </div>
  17. </div>
  18. <!-- Modal -->


Así es como llamo a la funcion

Código PHP:
Ver original
  1. <a href="#" id="comment" onclick="modal()" role="button" class="orange" >comment</a>


Gracias de antemano, espero sus respuestas.
  #2 (permalink)  
Antiguo 28/11/2012, 07:07
valago
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo abrir ventana modal y pasarle una variable

Espero puedan ayudarme, ya que me urge solucionar este problema. Les estaría muy agradecido, si puedieran guiarme un poco.
  #3 (permalink)  
Antiguo 28/11/2012, 07:46
 
Fecha de Ingreso: abril-2011
Ubicación: Leon
Mensajes: 61
Antigüedad: 13 años
Puntos: 2
Respuesta: No consigo abrir ventana modal y pasarle una variable

Hola
Yo lo que hago para pasar una variable es primero capturar el valor de la variable de php bien si se trata de una etiqueta a o bien etiquetando directamente por ejemplo si en php tengo:

echo '<a clase="enlace" href="'.$variable.'" ></a>';

Capturo la referencia desde js de a mediante una clase y la asigno al elemento donde quiero que vaya asi:

var _variable;
$('.enlace').click(function() {
$('#mi_dialog').dialog( "open" );
_variable = ($(this).attr('href'));
$('#inputvariable').attr('value', _variable);
return false;
});

Si donde quiero capturar no es un enlace entonces le meto una etiqueta con el nombre que quiera por ejemplo:

<span class="enlace" valorVariable=".$variable.'" ></span>

Espero que te sea de utilidad.
  #4 (permalink)  
Antiguo 28/11/2012, 11:34
valago
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo abrir ventana modal y pasarle una variable

muchas gracias por tu respuesta sfvgekko. Lo has explicado bastante claro, pero yo estoy un poco verde con javascript y me cuesta pillarlo. lo siento jeje

Podrías explicarmelo un poquillo mas claro para alguien que sabe lo justo de esto. Estoy comenzando a utilizarlo ahora, de aquí atrás siempre he trabajado con php.

He estado probando tu ejemplo, pero no se como hacerle funcionar jeje.

Solo he conseguido llamar a la ventana modal de esta manera

Código HTML:
Ver original
  1. <a href="#myModal" id="comment" data-toggle="modal">comment</a>

Pero claro así no me recoge bien la variable.

Después probé con la funcion que he puesto en el primer mensaje, pero no he conseguido que funcione bien. Por eso te digo que me está costando con javascript, tengo que ponerme desde 0.

Un saludo y gracias de nuevo.
  #5 (permalink)  
Antiguo 28/11/2012, 15:57
 
Fecha de Ingreso: abril-2011
Ubicación: Leon
Mensajes: 61
Antigüedad: 13 años
Puntos: 2
Respuesta: No consigo abrir ventana modal y pasarle una variable

Hola valago
Tampoco me hagas mucho caso y a lo mejor digo alguna tonteria ya que yo tambien llevo 4 dias con js, je je pero bueno voy a intentarlo, estaria bien que alguien lo ratificara o corrigiera.

El href="#mymodal" creo que no es necesario puesto que ya has asignado el evento click al elemento id=comment, por tanto no es necesario y puedes utilizar este valor para pasar la variable que quieras por ejemplo:


<a href="este comentario es el que voy a pasar" id="comment">comment</a>

Capturamos el valor de href del elemento en una variable y luego lo metemos donde nos haga falta con el atributo value:
Algo asi:

( "#comment" )
.button()
.click(function() {
$( "#myModal" ).dialog( "open" );
var comentario; //creamos la variable
comentario = $(this).attr('href'); //capturamos el valor href
$('#elementoDondeQueremosMeterElValor').attr('valu e', comentario); //asignamos el valor al elemento que queremos
return false; //para que no siga el enlace
});



Espero haberte ayudado
Saludos
  #6 (permalink)  
Antiguo 29/11/2012, 03:57
valago
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo abrir ventana modal y pasarle una variable

Hola de nuevo sfvgekko, he estado probando como tu me indicas,
Código HTML:
Ver original
  1. <a href="$id" id="comment">comment</a>
pero un enlace así me manda a otra página no llama a la funcion,

$id, sería la id del mensaje, para saber a que mensaje tengo k asociar el subcomentario.

He probado a hacerlo así, con un evento onclick
Código HTML:
Ver original
  1. <a href="#" id="comment" onclick="modal()">comment</a>
Pero no consigo tampoco llamar a la función y menos aún pasarle el id del mensaje.

Mi intención es cargar en la ventana modal una entrada de texto y un boton para enviar el submensaje a otra página que lo inserta en la base de datos, y que el id del mensaje padre se pase oculto a través del formulario.

No se si se te ocurre alguna forma mas, o es que yo he aplicado mal tus indicaciones.

Muchas gracias por tu ayuda, un saludo.
  #7 (permalink)  
Antiguo 29/11/2012, 13:54
 
Fecha de Ingreso: abril-2011
Ubicación: Leon
Mensajes: 61
Antigüedad: 13 años
Puntos: 2
Respuesta: No consigo abrir ventana modal y pasarle una variable

Hola valago

Desde mi poca experiencia el evento onclick creo que no es necesario ya estas asignando en el codigo js el evento click al elemendo con id=comment, por tanto diria que no hace falta.

Respecto a que te manda a otra pagina pues si no capturas el click te mandara a la pagina que indiques en el href, pero al asignar el evento click al elemento con id comment, y luego añadir return false, lo que hace es parar el enlace, entonces aprovechamos ese enlace para pasar el comentario e introducirlo en otra id de texto.

Es una especie de truco que yo hago que es usar el href para pasar una varibale en vez de para adjuntar el enlace, pero bueno no se, a mi me funciona.

De todos modos en el href creo qeu deberias pasar directamente el mensaje, no un id del mensaje.
Saludos

Etiquetas: ajax, formulario, funcion, input, modal, php, variables, 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 00:57.