Aveces queremos almacenar el contenido de un textarea tal y como el usuario lo ha dejado. Ejemplo:
Código:
Hola
esta
es una
prueba
Si estamos usando javascript para pasar las variables al documento de PHP, nos vamos a encontrar con el detalle de que se eliminan los saltos de linea (porque? realmente no se).
Despues de darle vueltas al asunto y probar con PHP funciones como nl2br y otras, me di cuenta de que el problema era la funcion javascript; los datos llegaban bien, pero los pasaba sin los saltos de linea.
La solucion es escapar los caracteres... el salto de linea es %0A en javascript, entonces... deduje que:
Código:
variable = escape(document.getElementById('TextArea').value);
variable = variable.replace(/%0A/g, "<br>");
Con eso reemplazamos los saltos de linea (%0A) por <br> (el salto de linea en HTML).
Bien... PHP recibira esa variable perfectamente... con los saltos de linea. Pero para recuperar el valor de la base de datos y ponerlo de nuevo en un textarea es necesario hacer otro replace (con PHP):
Código:
$variable=str_replace("<br>","\\n",$iFila["CampoConSaltosDeLinea"]);
A muchos de ustedes no les parecera la idea de almacenar tags de html en la bd, pero pueden idearse una mejor solucion; esta es una base para los que tenian la duda.
Saludos