Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] contenido textarea

Estas en el tema de contenido textarea en el foro de Jquery en Foros del Web. Buenas, No encuentro respuesta a lo que me pasa. Dispongo de un desplegable y textarea que apunta a un campo de una base de datos ...
  #1 (permalink)  
Antiguo 28/01/2018, 18:19
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
contenido textarea

Buenas,
No encuentro respuesta a lo que me pasa.
Dispongo de un desplegable y textarea que apunta a un campo de una base de datos mysql.

Cada vez que selecciono un ítem del desplegable, visualiza el correspondiente valor en el textarea, según encuentra en la base de datos. Hasta aquí ningún problema.

Pero cuando modifico el valor del textarea y lo grabo, ya no hay manera de actualizar el continido del textarea. No lo entiendo.

Si visualizo el contenido del textarea así, funciona perfectamente:
Código Javascript:
Ver original
  1. $('#txtVariable').text('texto');

Pero si quiero formato html, es cuando deja de funcionar:
Código Javascript:
Ver original
  1. $('#txtVariable').html('texto');

Sabe alguien qué pasa?
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 28/01/2018, 21:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: contenido textarea

En teoría, la única forma de acceder al contenido de un textarea, sería por su valor, creo que en jquery es .val(), porque estamos hablando de un campo de formulario y no de un contenedor HTML (div, span, p, section, etc.).

Ahora, estaría bien que menciones qué tipo de contenido HTML es el que deseas mostrar, porque si es sólo código, entonces bastaría con los signos < (&lt;) y > ($gt;) por sus respectivas entidades.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/01/2018, 01:45
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: contenido textarea

Gracias,
A continuación pongo el código html, jquery y php de todo el proceso:
Código HTML:
Ver original
  1. <div style="float: left;"><textarea id="txtVariable" class="dat" style="width: 278px;text-align:left;font:14px cGothics;height:75px;"></textarea></div>

Código Javascript:
Ver original
  1. txtVariable = $.trim($('#txtVariable').val());
  2. $.post( "../php/aaa.php",{ jQueryPost:'grabar',txtVariable:txtVariable}).done(function(){});

Código PHP:
Ver original
  1. case "grabar":
  2. $txtVariable = utf8_decode(filter_input(INPUT_POST,'txtVariable',FILTER_SANITIZE_SPECIAL_CHARS));
  3. UPDATE tabla SET txtVariable = '".$txtVariable."' WHERE condicion
  4. break;

Y ahora el proceso inverso, leo el campo de la base de datos y lo visualizo por jquery.

Código PHP:
Ver original
  1. $a0 = "SELECT txtVariable FROM tabla WHERE condicion ..."
  2. $respuesta = $a0['txtVariable'];

Código Javascript:
Ver original
  1. $('#txtVariable').html(respuesta]);

He reducido todo el código, sólo he puesto el que interesa. Y tal como digo, mientras no modifique el contenido del textarea, funciona perfectamente, pero una vez modificado, se queda fijo el contenido.

Cambiando el jquery $('#txtVariable').html(respuesta]); por $('#txtVariable').text(respuesta]); funciona, pero necesito que respecte los saltos de linea

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #4 (permalink)  
Antiguo 29/01/2018, 10:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: contenido textarea

Hola:

No entiendo de jQuery, pero supongo que se puede usar javascript... lo digo porqué cuando en javascript se quiere acceder al valor original de un control se consigue con innerHTML, pero si el valor que interesa es el actual el atributo es value... supongo que el aporte de Triby tiene que ver...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 29/01/2018, 10:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: contenido textarea

¿Y por qué no imprimes el valor directamente con PHP? Si recuperas el valor de una consulta en la base de datos, sería mucho más sencillo hacerlo así que de la forma en la que lo vienes intentando, a menos de que tengas una buena razón para hacerlo así.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 29/01/2018, 15:46
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: contenido textarea

Gracias por responder,
Se trata de una aplicación muy grande y está estructurada de esta manera.
Cada opción consiste:
- un fichero php con el diseño
- un fichero php donde se accede a la base de datos y devuelve el resultado a un fichero javascript
- un fichero javascript, donde se controlan los eventos y hace las llamadas al fichero php para obtener información o grabar.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #7 (permalink)  
Antiguo 29/01/2018, 17:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: contenido textarea

Por lo que dices, parece que estás usando una petición asíncrona (AJAX) para solicitar el texto a la base de datos y esta retorna el resultado. Pues, siendo así, y si el texto fue guardado con formato (como te expliqué en el otro hilo que abriste), no deberías tener problemas para establecerlo en el elemento. Solo cabe recordar que, siendo <textarea> un elemento de formulario, siempre deberás usar el método .val() para establecer el valor.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 29/01/2018, 17:20
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: contenido textarea

Buenas, es así Alexis, tal como dices.
El problema, y es lo que me trae de cabeza, es que mientras no se modifica el textarea funciona todo perfectamente.
El valor del textarea lo recojo con el método .val()
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #9 (permalink)  
Antiguo 30/01/2018, 00:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: contenido textarea

Francamente me parece extraño que no obtengas el resultado esperado habiendo seguido todas las indicaciones desde el hilo anterior hasta este. Si guardaste en la base de datos el texto con formato, no deberías tener ningún inconveniente al recuperarlo y mostrarlo en un área de texto, ya sea de manera directa, imprimiendo la variable con PHP en el elemento, o con una petición asíncrona (AJAX).

Como no es posible decirte algo más al respecto sin ver lo que haces, me surge una opción poco ortodoxa. En el archivo PHP, en lugar de retornar el texto, podrías tener un área de texto y allí mismo imprimir el valor, mientras que el área de texto del archivo desde el cual enviaste la petición sería reemplazado por el nuevo. Sería como un engaño a la vista, cambiando a un elemento por otro idéntico excepto por el valor contenido.

Para que no te vayas a complicar, te sugiero tener ese área de texto (el original) en un elemento contenedor, como, por ejemplo, un <div>. El área de texto nueva sería añadido en dicho <div> con el método .html(), en donde respuesta sería el contenido.

Código HTML:
Ver original
  1. <div id="ejemplo">
  2.     <textarea id="txtVariable"></textarea>
  3. </div>

Código Javascript:
Ver original
  1. $("#ejemplo").html(respuesta);

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 04/02/2018, 06:07
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: contenido textarea

Buenas, me sigo peleando con lo mismo.
Tengo el desplegable y un textarea. Cada vez que se selecciona un elemento del desplegable, se accede a la base de datos para obtener una información y visualizarla en el textarea. Esto funciona perfectamente, tantas veces como desee.
Si modifico el contenido del textarea, y lo grabo, queda bien grabado, pero entonces es cuando deja de funcionar, es decir, selecciono otro elemento del desplegable y en el no se modifica el contenido. Tengo que refrescar la página para que vuelva a funcionar

Uso el textarea porqué necesito grabar los saltos de linia. Alguna sugerencia? debería avanzar con el problema

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #11 (permalink)  
Antiguo 04/02/2018, 07:27
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: contenido textarea

Al final lo he conseguido. Existe algún problema por lo que he leído buscando por Google. Lo que he hecho es poner dentro de un div al textarea, y cuando cargo el contenido desde la base de datos, creo de nuevo el textarea con el contenido.

Me ha funcionado.
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: contenido, 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 09:04.