Ver Mensaje Individual
  #11 (permalink)  
Antiguo 10/10/2011, 06:24
_teseo_
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Salvar comillas con innerHTML

jummmm... acabo de darme cuenta que el problema viene de antes pero sigo sin poder solucionarlo.

La función completa de javascript donde pensaba que estaba el problema es esta:

Código Javascript:
Ver original
  1. function responder_foro(id_mensaje, texto_mensaje)
  2.     {
  3.         mensaje_foro.respuesta.value=id_mensaje;
  4.         texto_mensaje = texto_mensaje.replace(/["]/g,"\"");
  5.         texto_mensaje=texto_mensaje.replace(/\n/g,"<BR>");
  6.         document.getElementById('respondiendo').innerHTML="<P>"+texto_mensaje+"</P>";
  7.         document.getElementById('responder').style.display='block';
  8.     }

El parámetro llamado "texto_mensaje" que recibe, viene de un campo tipo hidden que contiene dicho texto...

Código HTML:
Ver original
  1. <INPUT type="hidden" name="texto_mensaje<?php echo $i; ?>" value="<?php echo $fila3['texto_mensaje_foro']; ?>">

...donde $fila3['texto_mensaje_foro'] ha sido extraido de la BD.

Puse el campo hidden como tipo text y me di cuenta que es ahi donde está el problema. Es ahí donde no me escribe ya todo lo que hay a partir de las primeras comillas, ni las primeras comillas tampoco, es decir:

Si el texto es este: Probando "esto esta entre comillas"...
... me escribe en el campo: Probando

Comprobé que en la base de datos está el texto completo con las comillas, y que la pagina que guardaba ese valor en la BD pasaba antes el addslashes a la variable.

Aún asi he probado a poner addslashes también cuando escribo el texto en el value del campo:

Código HTML:
Ver original
  1. <INPUT type="text" name="texto_mensaje<?php echo $i; ?>" value="<?php echo addslashes($fila3['texto_mensaje_foro']); ?>">

Pero entonces pasa lo siguiente...

Si el texto es este: Probando "esto esta entre comillas"...
... me escribe en el campo: Probando \

A ver si alguien sabe que estoy haciendo mal, que me está desesperando ya bastante este problema.

PD: Igual habia que cambiarlo de foro ya que este problema ha dejado de ser de javascript...