[Pregunta]: No funciona salto de línea en JAVACRIPT (+PHP)

Iniciado por Leguim, 16 Febrero 2019, 13:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Buenos días!
Me encontré con el siguiente problema y es que javascript no logra detectar los saltos de líneas de una variable o dato de PHP.

Explicando en que consiste el programa les podría decir que tengo una tabla en PHP donde se guarda el contenido de algo, va a almacenar un STRING luego al hacer click en un botón por ej, (Ver contenido)  va a mostrar dicho contenido, estaria enviando un parametro como el siguiente.

Código (php) [Seleccionar]

<?php
$contenido 
'Este es el contenido'// El dato lo tengo en la base de datos, no es una variable como esta.

?>

<button type="button" onclick="Mostrar_Contenido('<?php echo $contenido?>')">ver contenido</button>


Basicamente al hacer esto JS me interpreta el código muy mal, es como que los saltos de línea dieran error,  busque y existen varias soluciones de las cuales intente pero sigue igual que antes.

El error que arroja es "invalid or unexpected token"

El dato original es 'fakdfj aksdjf askdjf askjdf ajsdkfasdkf asdjfasdfasdfaskdf asdkjf asdfasdfasdfasdjfka kqe WJKQWA RJKA JRKAW RAKWJ RAW jkads afksjdfaskdf jasdfka sdfjasdfkasjdfasdjkg asdk faskdjfa sdfkja dfja ksfajsdfasdfasdf fajksdf kajdsf akjsdf aksjdf ajkwrawqjka kjd \r\n\\n\r\nakjsdfa skdf jkasdfkasdfjkasd fkasdj faksdfafd ABC'

El código funciona correctamente ya que probé otros datos de tipo STRING que no tengan salto de línea y funciona bien.
Gracias desde ya!

ACTUALIZACIÓN:
Quizá esto les ayude a entender un poco mas el problema, como pueden ver acá en este STRING existen saltos de lineas y miren lo que pasan con el código JS


EdePC

Saludos,

- Intenta escapando el salto de línea antes de pasárselo al javascript:

Código (php) [Seleccionar]
<button type="button" onclick="Mostrar_Contenido('<?php echo str_replace("\n","\\n",$contenido); ?>')">ver contenido</button>

- Fuente: https://stackoverflow.com/questions/13709517/escaping-line-break-endline-from-php-variable-for-javascript-usage

Leguim

Cita de: EdePC en 16 Febrero 2019, 17:36 PM
Saludos,

- Intenta escapando el salto de línea antes de pasárselo al javascript:

Código (php) [Seleccionar]
<button type="button" onclick="Mostrar_Contenido('<?php echo str_replace("\n","\\n",$contenido); ?>')">ver contenido</button>

- Fuente: https://stackoverflow.com/questions/13709517/escaping-line-break-endline-from-php-variable-for-javascript-usage

Gracias por contestar Ede! No me funciono el código sigue igual, para ver si el error venia de otro lado probé con el código que les mostre de ejemplo pero tampoco funciono. Lo dejó acá

Código (php) [Seleccionar]

<?php
$variable 'tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
;
$variable str_replace("\n","\\n",$variable);
?>


<script type="text/javascript">
alert('<?php echo($variable); ?>');
</script>

Leguim

Ya lo pude solucionar! Gracias igualmente, a casi me olvido acá les dejo el código ya solucionado por si a alguien mas le pasa esto, para que no tengan dolor de cabeza tratando de buscar la solución.  ;-)

Código (php) [Seleccionar]

<?php
$variable 'tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
;
$variable str_replace("\r\n","\\r\\n",$variable);
?>


<script type="text/javascript">
alert('<?php echo($variable); ?>');
</script>