Foros del Web » Programando para Internet » Javascript »

Como pasar variable tipo list de gsp a javascript

Estas en el tema de Como pasar variable tipo list de gsp a javascript en el foro de Javascript en Foros del Web. Hola a todos: Estoy intentando pasar una variable de tipo "list" de una pagina gsp (groovy server page) a un javascript mediante una llamada a ...
  #1 (permalink)  
Antiguo 26/05/2010, 05:03
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Como pasar variable tipo list de gsp a javascript

Hola a todos:

Estoy intentando pasar una variable de tipo "list" de una pagina gsp (groovy server page) a un javascript mediante una llamada a la función print(variable) pero después no me la coge bien en el javascript, lo estoy haciendo mal.

Código groovy:
Ver original
  1. <g:javascript>
  2.         function print(){
  3.             alert("${list[0].getComentarios()}");
  4.     }
  5. </g:javascript>

Si lo hago tal como muestro arriba, con el código javascript dentro de la GSP, si que me funciona eso, pero si lo hago llamando una funcion que está en un archivo javascript a parte... (y si que esta bien referenciado el archivo ya que un alert("algo"); me lo muestra!):

Código groovy:
Ver original
  1. <button dojoType="dijit.form.Button" label="Ver chat entero" onclick="print('list')">
  2.     Ver chat entero
  3. </button>

Pues no me funciona... He probado mil maneras y no consigo como pasarle la variable Esa variable es un arraylist, que en el javascript voy a querer manejar para recuperar todos sus campos y trabajar con ellos, y viene del controlador.

Espero vuestra ayuda, muchas gracias!!!
  #2 (permalink)  
Antiguo 26/05/2010, 05:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Como pasar variable tipo list de gsp a javascript

teoricamente entiendo lo que quieres hacer, pero no entiendo nada de los codigos -por supuesto, debido a mi desconocimiento en groovy-. en todo caso, deberias mostrar el codigo generado por GSP. asi de momento y recurriendo un poco a la adivinacion, trata de no usar nombre de otras funciones o propiedades para tus funciones. print es una funcion para imprimir en un impresor el documento. al usar como nombre print, lo mas seguro el navegador no te lo admite. por otro lado, para transferir la lista desde GSP a javascript, tienes que usar alguna funcion que te permita mostrar [escribir o imprimir] el contenido de la lista en el documento en un formato aceptable por javascript.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 26/05/2010, 16:03
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Como pasar variable tipo list de gsp a javascript

Lo he intentado con otro nombre pero me sigue sin salir :( ahora lo que he hecho es poner el codigo javascript dentro de la GSP, entonces si que me lo admite (pero igualmente me gustaría tenerlo en codigos separados).

La cuestión es que si lo pongo junto, si que me va, pero me aparece otro problema:
Código groovy:
Ver original
  1. <g:javascript>
  2.         var i=0;
  3.         //funcion que printa en la web (genera codigo html) de los productos añadidos
  4.         function play(){
  5.             var msg_text = document.getElementById("msg_text");
  6.             //removing the list
  7.             if ( msg_text.hasChildNodes() ){
  8.                 while ( msg_text.childNodes.length >= 1 ){
  9.                 msg_text.removeChild( msg_text.firstChild );      
  10.                 }
  11.             }
  12.            
  13.             //volvemos a crear la lista
  14.             var ul = document.createElement("ul");
  15.            
  16.             //rellenamos la lista entera al completo
  17.             rellenar(ul);
  18.            
  19.             msg_text.appendChild(ul);
  20.         }
  21.        
  22.         function rellenar(ul){
  23.            
  24.              if(${list.size()} > i) {
  25.                     alert(i);
  26.                    
  27.                     var li = document.createElement("li");
  28.                     var mensajeMostrado = "${list[i].getComentarios()}";
  29.                    
  30.                     li.innerHTML = mensajeMostrado;
  31.                    
  32.                     ul.appendChild(li);
  33.                     setTimeout(function(){rellenar(ul);}, 1000);
  34.                     i++;
  35.              }
  36.         }
  37.     </g:javascript>

En la linea var mensajeMostrado = "${list[i].getComentarios()}"; si pongo en vez de una i, 0 si que me va, pero al poner la i me dice que el valor es null!!!! y es imposible pq antes pongo un alert para comprobar el valor de i, y no es null...
  #4 (permalink)  
Antiguo 27/05/2010, 13:37
 
Fecha de Ingreso: abril-2010
Ubicación: L'Hospitalet de LLobregat
Mensajes: 43
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Como pasar variable tipo list de gsp a javascript

nadie sabe groovy/gsp ???????????????????????????? ayuda por favor!!!!!!
  #5 (permalink)  
Antiguo 03/01/2011, 14:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Como pasar variable tipo list de gsp a javascript

Hola men, pues yo probe tu primer codigo y efectivamente funciona bien pero la parte donde declaras algo de Dojo hace un efecto de reset.

Mejor te dejo el ejemplo que funciona pasando un string y oculta in DIV...

<html>
<head>
<g:javascript src="../js/mensaje.js" />
</head>
<body>
<g:form>
<div id="alert12" name="alert1" style="display:; color:red">mensaje</div>
<button type="button" onclick="print('holaasd')" title="titulo"/>texto</button>
</g:form>
</body>
</html>


este es el js que se encuentra en /pruebas/web-app/js/mensaje.js de mi proyecto pruebas



function print(id){
alert(id);
var misDIV =document.getElementById("alert12");
misDIV.style.display="none";
alert("hola2");
}

perdon por responder tan tarde

Etiquetas: list, pasar, tipo, variables
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 14:37.