SoloCodigo

Programación Web y Scripting => JavaScript => Mensaje iniciado por: darupi en Jueves 20 de Agosto de 2009, 02:22

Título: Funcion alert
Publicado por: darupi en Jueves 20 de Agosto de 2009, 02:22
Tengo un pequeño problema que no se como resolver:

Tengo una tabla que se crea dinámicamente. Lo que muestra es una serie de noticias que tengo en una base de datos.

Pero como las noticias son largas y no se ven bien en la tabla, he decidido poner un botón para que, al pulsarlo, se muestre una ventana con la función alert() en javascript, pasandole por parámetro la cadena de texto que quiero mostrar.

La funcion es esta:
Código: Text
  1.  
  2. <script language="javaScript" type="text/javascript">
  3.     function abrir(numero)
  4.     {
  5.         var x = document.getElementById("sms" + numero);
  6.         alert(x);
  7.     }
  8. </script>
  9.  
  10.  
  11.  

El problema es que, conforme lo tengo, no entra a la función del Script.
Código que NO ME funciona y quiero que funcione:
Código: Text
  1.  
  2. ...
  3. int i = 1;
  4. //Ciclo de lectura del resultset
  5. while(rs.next())
  6. {
  7.      solucion = solucion  + "<TR>";
  8.      solucion = solucion  + "<TD width="20%"><i><input type="button" style="font-size:small" name="sms" + i + "" value="SMS" onclick ="abrir(" + rs.getString("Mensaje") + ");"/></i></TD>";
  9. solucion = solucion  + "</TR>";
  10. i++;
  11. }
  12. ...
  13.  
  14.  

En cambio, si pongo que le paso por parametro la "i" si que funciona:
Código que funciona:
Código: Text
  1.  
  2. ...
  3. int i = 1;
  4. //Ciclo de lectura del resultset
  5. while(rs.next())
  6. {
  7.      solucion = solucion  + "<TR>";
  8.      solucion = solucion  + "<TD width="20%"><i><input type="button" style="font-size:small" name="sms" + i + "" value="SMS" onclick ="abrir(" + i+ ");"/></i></TD>";
  9. solucion = solucion  + "</TR>";
  10. i++;
  11. }
  12. ...
  13.  
  14.  

Previamente hago una consutla de la base de datos donde aparece el campo Mensaje, pero no entiendo porque si le paso "i" si que entra y si en cambio, si le paso una cadena de texto (el mensaje) no entra.

Gracias!

PD: Solucionado, me faltaba poner las comillas simples!
Título: Re: Funcion alert
Publicado por: arielb en Lunes 24 de Agosto de 2009, 21:15
has intentado separarlo?.

Código: Java
  1. ...
  2. int i = 1;
  3. //Ciclo de lectura del resultset
  4. String dato;
  5. while(rs.next())
  6. {
  7.     dato = rs.getString("Mensaje") ;
  8.      solucion = solucion  + "<TR>";
  9.      solucion = solucion  + "<TD width="20%"><i><input type="button" style="font-size:small" name="sms" + i + "" value="SMS" onclick ="abrir(" + dato + ");"/></i></TD>";
  10. solucion = solucion  + "</TR>";
  11. i++;
  12. }
  13. ...
  14.  
Título: Re: Funcion alert
Publicado por: Nagisa en Domingo 30 de Agosto de 2009, 10:09
Buenas:

Solo comentarte un detalle que me dio muchos problemas. Cuando uses getElementById("xxxx"), asegurate que defines el atributo id del elemento (no solo el name).

No se muy bien por que con Internet Explorer funciona bien (creo que te coge el name si no encuentra el id), pero a mi me dio problemas con Firefox (por lo menos la versión 2), y me costo mucho encontrar el motivo.

Citar
   
solucion = solucion  + "<TD width='20%'><i><input type='button' style='font-size:small' id='sms" + i + "' value='SMS' onclick ='abrir(" + dato + ");'/></i></TD>";

Un saludo!!
Título: Re: Funcion alert
Publicado por: darupi en Lunes 31 de Agosto de 2009, 15:34
Ya lo tengo arreglado.
El problema era que no ponia las comillas simples! :p