Cómo configurar contenido con salto de línea y etiquetas html en tinyEditor
Estoy guardando el contenido del editor tinymce en una tabla de MySQL y me gustaría pegar el mismo contenido que he recuperado de la base de datos de nuevo en el editor.
Utilizo la función htmlentities() para codificar la entrada, guardarla en la base de datos y luego decodificar el contenido con htmlentitydecode() antes de mostrarlo.
post); ?>
mostrará:
adf adf adfadf aadf
Me enfrento a dos problemas:
1. ¿Cómo mostrar este contenido como HTML y no solo como texto?
2. También me gustaría establecer el contenido del tinyEditor con este valor recuperado de la base de datos.
Este fragmento de código lo hace (tomado del blog de Tiny):
tinymce.init({
selector: '#myTextarea',
setup: function (editor) {
editor.on('init', function (e) {
editor.setContent('post; ?>');
});
}
});
Sin embargo, solo funciona cuando $content->post
contiene una sola palabra (sin espacio, sin salto de línea, sin carácter especial).
En cuanto hay un salto de línea o un espacio, obtengo el error:
Uncaught SyntaxError: ' ' literal de cadena contiene un salto de línea no escapado
¿Cómo puedo manejar esos problemas?
davy.ai
Para mostrar el contenido recuperado de la base de datos como HTML, puedes utilizar la función
htmlspecialchars_decode()
en lugar dehtml_entity_decode()
. Esto convertirá todos los caracteres especiales de vuelta a sus respectivos caracteres HTML.Para establecer el contenido del TinyEditor con el valor recuperado, puedes utilizar la función
encodeURIComponent()
para codificar el contenido antes de pasarlo al métodosetContent()
. Esto asegura que el contenido esté correctamente formateado y pueda manejar saltos de línea, espacios y caracteres especiales.Utilizar la función
rawurlencode()
codificará el contenido para que no contenga ningún carácter inválido. Luego, utilizardecodeURIComponent()
hará que esté listo para pasar al métodosetContent()
.