Foros del Web » Programando para Internet » PHP »

Saltos de linea en 'textarea' y mysql

Estas en el tema de Saltos de linea en 'textarea' y mysql en el foro de PHP en Foros del Web. He estado leyendo los FAQs pero no me aclaro nada. Tengo un form con un textares, quiero que al enviar añada a la BD los ...
  #1 (permalink)  
Antiguo 16/07/2008, 05:19
 
Fecha de Ingreso: octubre-2007
Mensajes: 35
Antigüedad: 16 años, 5 meses
Puntos: 0
Saltos de linea en 'textarea' y mysql

He estado leyendo los FAQs pero no me aclaro nada.

Tengo un form con un textares, quiero que al enviar añada a la BD los saltos de linea escritos en ese textarea. Y despues al verlos que los interprete y los ponga.

Supongo que el formulario que procese el envio tendra que interpretar cada salto de linea y poner \n y despues al recuperar los datos leer ese \n y poner salto de lina no ?

Lo que no se es como hacerlo. Saludos
  #2 (permalink)  
Antiguo 16/07/2008, 06:56
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Saltos de linea en 'textarea' y mysql

Podrias combinar estas funciones
http://www.php.net/htmlentities
http://www.php.net/manual/es/functio...ity-decode.php

Andrés
  #3 (permalink)  
Antiguo 16/07/2008, 07:17
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Saltos de linea en 'textarea' y mysql

Hola Bueno en PHP existe una solucion muy facil para implementar eso. PHP tiene una funcion ya hecha pero espero que esta te sirva de gran utilidad.

Código PHP:

function saltoLinea($str) {
  return 
str_replace(array("\r\n""\r""\n"), "<br />"$str);

Código PHP:

//Modo de uso.

$texto $_POST['mi_text_area'];
 
 
saltoLinea('$texto'); 
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #4 (permalink)  
Antiguo 16/07/2008, 09:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 35
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Saltos de linea en 'textarea' y mysql

Muchas gracias eddwinpaz.

Al final he echo esto:

Para añdir:

Código PHP:
function saltoLinea($str) {
  return 
str_replace(array("\r\n""\r""\n"), "<br />"$str);


//Modo de uso
$add_infosaltoLinea($_POST['info']); 
Me lo remplaza perfectamente, se ve en la BD los <br /> y al visualizar ese registro el navegador ya me lo interpreta como salto de linea, todo perfecto.

Cuando editaba se veia los <br /> y era un poco engorroso, asique utilice esto para editar:

Código PHP:
function saltoLineaRev($str) {
  return 
str_replace(array("<br />"), "\n"$str);


//Modo de uso
$edit_infosaltoLineaRev($linea['info']); 
Gracias :)
  #5 (permalink)  
Antiguo 16/07/2008, 09:32
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Saltos de linea en 'textarea' y mysql

Bueno en realidad para que no vieras los <BR> en el TextArea simplemente cada vez que tengas que mostrar el texto. Utilizas la función y listo. en vez de usar la función a la hora de salvar.

NOTA: El ejemplo era solo un ejemplo de uso con $_POST[] no quiere decir que lo tuvieras que haber hecho así..
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 16/07/2008, 09:33
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Saltos de linea en 'textarea' y mysql

array("\r\n", "\r", "\n"), "<br />" es para que se vea en Linux, Mac Os, Windows y Sun Os..

\r etc.. no estan demas son especialmente para cada tipo de salto de linea. en el diferente tipo de ssitema operativo
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
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 11:39.