Foros del Web » Programando para Internet » PHP »

Funcion nl2br

Estas en el tema de Funcion nl2br en el foro de PHP en Foros del Web. Chicos me colaboran con una duda por favor En un formulario tengo un campo textarea, en este campo separo los parrafos con enter, en el ...
  #1 (permalink)  
Antiguo 02/11/2012, 12:59
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Funcion nl2br

Chicos me colaboran con una duda por favor

En un formulario tengo un campo textarea, en este campo separo los parrafos con enter, en el formulario queda visualmente bien, luego lo guardo sin problemas en un campo de mi BD. Sin embaro cuando recupero el campo los parrafos salen pegados uno a continuacion del otro.

Leyendo encontre que la funcion nl2br ( echo nl2br($mensaje); ) sirve para solucionar ese problema, sin embargo sigo con el problema.

Alguna sugerencia

Gracias
  #2 (permalink)  
Antiguo 02/11/2012, 13:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Funcion nl2br

se supone que dicha funcion te cambia los saltos de línea por <br />, lo que en teoría debe de colocarte los saltos de linea en el html resultante, revisa el código fuente para verificar.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 02/11/2012, 13:09
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

como la usas? se usa asi
Código PHP:
Ver original
  1. echo nl2br($mensaje);
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #4 (permalink)  
Antiguo 02/11/2012, 13:19
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Funcion nl2br

maycolalvarez, CoriaWeb, luego de conectar la BD, abrir la tabla y realizar la consulta e intentado lo siguiente:

He aplicado de dos formas la funcion pero no me funciona

Código HTML:
Ver original
  1. echo nl2br($row['campo_mensaje']);
  2.  
  3. y
  4.  
  5. $mensaje = $row['campo_mensaje']
  6.  
  7. echo nl2br($mensaje);
  #5 (permalink)  
Antiguo 02/11/2012, 13:22
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

Pues con eso deberia de funcionarte con lo que el problema viene de otro sitio.. como tienes el campo en la base de datos? como text, varchar..?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #6 (permalink)  
Antiguo 02/11/2012, 13:34
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Funcion nl2br

Cita:
Iniciado por CoriaWeb Ver Mensaje
Pues con eso deberia de funcionarte con lo que el problema viene de otro sitio.. como tienes el campo en la base de datos? como text, varchar..?
El campo esta definido como varchar con Cotejamiento utf8_bin
  #7 (permalink)  
Antiguo 02/11/2012, 13:49
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

cambialo a text y vuelve a insertar un registro y me dices el resultado
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #8 (permalink)  
Antiguo 02/11/2012, 14:35
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Funcion nl2br

CoriaWeb, ya lo intente, hice la prueba pero no tiene ningun efecto
  #9 (permalink)  
Antiguo 02/11/2012, 14:37
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

Vale pues entonces :D el codigo que lo inserta en la base de datos, publica tu codigo para guardarlo a la base de datos, el formulario y la validacion.
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #10 (permalink)  
Antiguo 02/11/2012, 14:59
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Funcion nl2br

CoriaWeb, ¿tendra que ver, el hecho de que pase el campo mensaje del formulario por una funcion ajax, antes de llegar al script que hace el insert?
  #11 (permalink)  
Antiguo 02/11/2012, 15:02
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

Es lo que queria ver, que "proceso" sigue ese campo, depende de como tengas el script montado.. si publicas todo el proceso que hace ese campo podria ver en un momento como lo tienes y si es algun problema de eso ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #12 (permalink)  
Antiguo 02/11/2012, 15:23
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 53
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Funcion nl2br

Este es el codigo que uso para capturar, validar e insertar el campo textarea

Formulario
Código HTML:
Ver original
  1. <form method="post" action="" name="mensaje" accept-charset="utf-8" enctype="multipart/form-data">
  2.  
  3. <textarea name="respuesta_mensaje" id="respuesta_mensaje" cols="43" rows="5"></textarea>
  4.  
  5. <input type="button" value=" Enviar " onclick="validar_mensaje()">
  6.  
  7. </form>

Validacion
Código HTML:
Ver original
  1. function validar_mensaje(){
  2.  
  3. var resultado = document.getElementById('respuesta_nueva');
  4.  
  5. if (!/^[a-zA-Z0-9_.-]+$/.test(document.getElementById('respuesta_mensaje').value)) {     alert(Debe diligenciar campo mensaje );
  6. return false;
  7. }
  8.    
  9.         var var1 = document.getElementById('respuesta_mensaje').value;
  10.  
  11.     ajax=objetoAjax();
  12.     ajax.open("GET", 'insertares.php?mensaje='+var1);
  13.     ajax.onreadystatechange=function() {
  14.         if (ajax.readyState==4) {
  15.              resultado.innerHTML = ajax.responseText;
  16.         }
  17.     }
  18.     ajax.send(null)
  19.  
  20.     }

Script php para insertar
Código HTML:
Ver original
  1. //Abrir la conexion:
  2. $conex=@mysql_connect("localhost","BBDD","AABBCC");
  3. if(!$conex){
  4.  echo "Error al intentar conectarse con el servidor";
  5.  exit();
  6. }
  7. //Elegir una BD:
  8. if(!@mysql_select_db("mensajes",$conex)){
  9.  echo "No se pudo conectar correctamente con la Base de datos";
  10.  exit();
  11. }
  12.  
  13. mysql_query("SET NAMES 'utf8'");
  14.  
  15.  
  16. $mensaje = trim($_POST['respuesta_mensaje']);
  17.  
  18. $sql = "INSERT INTO solicitudes values ('$fecha_entrada', '$mensaje')";
  19. mysql_query($sql, $conex) or die("No se pudo ejecutar el insert");
  20.  
  21. mysql_close($conex);

Última edición por helena71; 02/11/2012 a las 15:31
  #13 (permalink)  
Antiguo 03/11/2012, 00:29
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

Así a simple vista no veo nada raro.. claro que a estas horas tampoco esperes que vea mucho.. :P jajaja

Haber prueba una cosa, "saltate" un momento el ajax, cambia en el form el onclick por el submit de toda la vida y envia directamente poniendo en el action del formulario el archivo de validacion y haber si asi directamente si te funciona, ¿entendistes lo que quiero decir?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #14 (permalink)  
Antiguo 03/11/2012, 00:43
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Funcion nl2br

Código Javascript:
Ver original
  1. if (!/^[a-zA-Z0-9_.-]+$/.test(document.getElementById('respuesta_mensaje').value)) {
  2.     alert(Debe diligenciar campo mensaje );
  3.     return false;
  4. }

Me parece que esa expresión regular no permite espacios ni saltos de línea.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 03/11/2012, 01:01
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Funcion nl2br

Triby de esa expresión es de la que yo estaba dudando por eso le solicité que se "saltase" el ajax, yo tambien opino que hay esta el problema pero haber que pruebe y nos cuente como le fue :D
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting

Etiquetas: formulario, funcion, nl2br
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 16:45.