Foros del Web » Programando para Internet » PHP »

cargar dato de sql de varias líneas en textarea

Estas en el tema de cargar dato de sql de varias líneas en textarea en el foro de PHP en Foros del Web. Hola, Por favor, agradecería que me echasen una mano. Llevo días con esto y no avanzo. He probado indicaciones de hilos anteriores, pero sin éxito. ...
  #1 (permalink)  
Antiguo 28/04/2016, 12:42
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 1
cargar dato de sql de varias líneas en textarea

Hola,
Por favor, agradecería que me echasen una mano. Llevo días con esto y no avanzo.
He probado indicaciones de hilos anteriores, pero sin éxito.

Quiero sacar en un textarea el contenido de un registro de la BD.
La acción de activa cuando se hace click en un icono y llama a una función js que realiza el refresco del textarea.
Funciona OK cuando el contenido es de una línea. Pero cuando el contenido es de varias líneas no se muestra nada.
archivo.js
Código:
function cargarContenido(valor1)
 {
   textarea = $("textarea").val(valor1);
   textarea_line = textarea.replace(new RegExp("\n","g"), "<br>");
   $("#id_del_textarea").html(textarea_line);
 }
archivo.php
Código:
<div class="link"  onclick="cargarContenido( '<?php echo nl2br($registro['consulta']) ;?>'  )"><img src="img/icono5.png"></div>
Gracias!
Saludos.
  #2 (permalink)  
Antiguo 28/04/2016, 12:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: cargar dato de sql de varias líneas en textarea

Tu problema es que metes una gran cantidad de texto en un atributo de HTML, eso está mal, y por eso se rompe cuando hay varias lineas, y de hecho es aún peor porque básicamente metes HTML dentro de atributos de HTML provocando errores de sintaxis.

Eso lo puedes verificar en tu navegador porque sencillamente el Javascript deja de funcionar como esperas.

Mientras sigas usando atributos de esa forma seguirás con el mismo problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/04/2016, 13:26
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 1
Respuesta: cargar dato de sql de varias líneas en textarea

Gracias.
En principio tenía:
Código:
function cargarContenido(valor1)
 {
   $("#id_del_textarea").val(valor1);
 }
Pero el resultado era similar (no funcionaba).
¿Como me recomendarías realizar la carga?

Un saludo.
  #4 (permalink)  
Antiguo 28/04/2016, 13:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: cargar dato de sql de varias líneas en textarea

¿Es necesario que sea con Javascript?

Podrías tener un <textarea> oculto, y sólo copiar el contenido al <textarea> que necesitas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/04/2016, 11:04
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 1
Respuesta: cargar dato de sql de varias líneas en textarea

Buenas,
Pues he intentado buscar una forma de hacerlo sin js y no encuentro como.
Tengo que utilizar "onclick" para actualizar el textarea.
Llevas razón, el problema es que el salto de línea no lo recoge correctamente la función.

¿Alguna indicación de como hacerlo?
Gracias.
  #6 (permalink)  
Antiguo 30/04/2016, 10:35
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 1
Respuesta: cargar dato de sql de varias líneas en textarea

¿Alguna recomendación, please?
Sigo dándole vueltas sin conseguir nada. He probado con json_encode pero sin éxito.

Gracias.
  #7 (permalink)  
Antiguo 30/04/2016, 11:14
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: cargar dato de sql de varias líneas en textarea

Has intentado hacerlo mediante ajax? Se que suena algo complicado pero a mi me ha dado resultado en algunos casos.
Si no deseas, podrías especificar que error te marca al ejecutar la función ?

Saludos
  #8 (permalink)  
Antiguo 30/04/2016, 13:17
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 1
Respuesta: cargar dato de sql de varias líneas en textarea

Gracias por la respuesta.
No me importaría hacerlo con ajax... pero no tengo conocimientos.

En cuanto al error:
Funciona OK cuando no hay saltos de línea. -> Muestra el texto en el texarea
Falla cuando hay salto de línea. ->No muestra nada en el textarea. . El problema es que la función js no es capaz de recoger el salto de línea.

Saludos.
  #9 (permalink)  
Antiguo 30/04/2016, 13:52
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: cargar dato de sql de varias líneas en textarea

Prueba con esto implementandolo a tu codigo


Código:
function generarSalto(texto,mydiv){
$(mydiv).innerHTML = texto.replace(/n/g, "
");
}
Nos avisas.
  #10 (permalink)  
Antiguo 01/05/2016, 04:03
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 1
Respuesta: cargar dato de sql de varias líneas en textarea

Gracias a todos por vuestras respuestas.
Parece que ya lo he conseguido. De todas formas no se si esta forma es un poco chapuza... Si alguien sabe si hay una forma mejor de resolverlo agradecería que lo dijese.


archivo js
Código:
function cargarContenido(valor1)
{
  textarea_line = valor1.replace(/<br\s?\/?>/g,"\n");
  $("#id_del_textarea").html(textarea_line);
 }
archivo.php
Código:
<?php 
$cadena = $registro['consulta'];
$texto=str_replace("\r\n", "<br>", $cadena);  
?> 
<div class="link"  onclick="cargarContenido( '<?php echo($texto) ;?>'  )"><img src="img/icono5.png"></div>
Saludos.

Etiquetas: dato, html, registro, sql, textarea
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 08:22.