• Jueves 14 de Noviembre de 2024, 03:58

Autor Tema:  Funcion alert  (Leído 1899 veces)

darupi

  • Miembro activo
  • **
  • Mensajes: 38
    • Ver Perfil
Funcion alert
« en: Jueves 20 de Agosto de 2009, 02:22 »
0
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!

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Funcion alert
« Respuesta #1 en: Lunes 24 de Agosto de 2009, 21:15 »
0
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.  
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: Funcion alert
« Respuesta #2 en: Domingo 30 de Agosto de 2009, 10:09 »
0
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!!
   

darupi

  • Miembro activo
  • **
  • Mensajes: 38
    • Ver Perfil
Re: Funcion alert
« Respuesta #3 en: Lunes 31 de Agosto de 2009, 15:34 »
0
Ya lo tengo arreglado.
El problema era que no ponia las comillas simples! :p