Foros del Web » Programando para Internet » Javascript »

Variable php multiline a JS

Estas en el tema de Variable php multiline a JS en el foro de Javascript en Foros del Web. Buenas noches amigos, espero me puedan ayudar. Tengo un textarea en el cual aparece un texto al dar click en un botón. El texto se ...
  #1 (permalink)  
Antiguo 24/03/2015, 19:47
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 4 meses
Puntos: 0
Pregunta Variable php multiline a JS

Buenas noches amigos, espero me puedan ayudar.
Tengo un textarea en el cual aparece un texto al dar click en un botón.
El texto se extrae de una consulta a la BD y es almacenado en una variable PHP.

Luego esa variable php es convertida a JS para que el texto aparezca al hacer click en el botón. El texto original es de unas 30 lineas y un montón de caracteres y números y etiquetas html...(tengo entendido que aun así sigue siendo texto plano almacenado en la BD).

Cuando click en el botón no sucede nada, pero si cambio la variable php a una que contiene 1 sola linea de texto, entonces el script funciona al hacer click al botón aparece el texto. Alguien podría decirme como solucionar este problema por favor?

Gracias
  #2 (permalink)  
Antiguo 24/03/2015, 19:52
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Variable php multiline a JS

Nosotros los magos adivinaremos tu código...
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 24/03/2015, 20:23
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Variable php multiline a JS

buenas...
el primer mago a venido! por lo que entiendo, quieres almacenar un string multi-line en js. puedes hacerlo pero igual no tendrá el efecto deseado. o sea, para efecto del código javascript puedes tener el string en múltiples líneas pero no significa que al mostrarlo en el textarea se verá tal cual en el código. (variable str1.) para que el string se muestre en varias líneas tienes que ingresarle saltos de línea (LF o CR) al string. es decir, tienes que localizar en el string todos los saltos de líneas y cambiarlo por su equivalente escape. (variable str0.) si quieres que en el script se vea multilínea, al final de cada línea tienes que agregar un backslash salvo en la última línea. la variable str2 muestra una combinación de ambas.

en síntesis, no te funciona porque estás rompiendo el string. javascript detecta que el string inicia pero no termina.

Código:
str0 = "multi\nlinea\nen\ntextarea";
str1 = "multi\
linea\
en\
textarea";
str2 = "multi\n\
linea\n\
en\n\
textarea"
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 24/03/2015 a las 20:30
  #4 (permalink)  
Antiguo 25/03/2015, 02:02
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Variable php multiline a JS

Para simplificar el trabajo puedes utilizar una herramienta de escape online o guardarlo todo en un Base64 y luego pasarlo a texto con atob().
  #5 (permalink)  
Antiguo 25/03/2015, 07:31
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Variable php multiline a JS

Muchas gracias por sus respuestas jaja...disculpen por no colocar el código.
Tengo un textarea en el cual aparece un texto al dar click en un botón.
El texto se extrae de una consulta a la BD y es almacenado en una variable PHP.
-----------
Código:
$consulta= "SELECT nombre,contenido FROM plantillas WHERE nombre ='$plantilla'";
$resultado= mysql_query($consulta,$conex) or die (mysql_error());
$fila=mysql_fetch_array($resultado);
$nombre = $fila['nombre'];
$contenido = $fila['contenido'];
-----------------------------------------------------------------------------------

Luego esa variable php es convertida a JS para que el texto aparezca al hacer click en el botón. El texto original es de unas 30 lineas y un montón de caracteres y números y etiquetas html...(tengo entendido que aun así sigue siendo texto plano almacenado en la BD).
---------------------------
Código:
<script>
        $(document).ready(function(){
        var contenido = '<?php echo $contenido; ?>';
        $("#boton").click(function(){
        $('#textarea').val(contenido);});
        });
        </script>-->
---------------------------------------------------------------------------
Cuando click en el botón no sucede nada, pero si cambio la variable php a una que contiene 1 sola linea de texto (var contenido = '<?php echo $nombre; ?>';), entonces el script funciona al hacer click al botón aparece el texto. Alguien podría decirme como solucionar este problema por favor?

Gracias
  #6 (permalink)  
Antiguo 25/03/2015, 07:47
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Variable php multiline a JS

Cita:
Iniciado por avsg1991 Ver Mensaje
Muchas gracias por sus respuestas jaja...disculpen por no colocar el código.
Tengo un textarea en el cual aparece un texto al dar click en un botón.
El texto se extrae de una consulta a la BD y es almacenado en una variable PHP.
-----------
Código:
$consulta= "SELECT nombre,contenido FROM plantillas WHERE nombre ='$plantilla'";
$resultado= mysql_query($consulta,$conex) or die (mysql_error());
$fila=mysql_fetch_array($resultado);
$nombre = $fila['nombre'];
$contenido = $fila['contenido'];
-----------------------------------------------------------------------------------

Luego esa variable php es convertida a JS para que el texto aparezca al hacer click en el botón. El texto original es de unas 30 lineas y un montón de caracteres y números y etiquetas html...(tengo entendido que aun así sigue siendo texto plano almacenado en la BD).
---------------------------
Código:
<script>
        $(document).ready(function(){
        var contenido = '<?php echo $contenido; ?>';
        $("#boton").click(function(){
        $('#textarea').val(contenido);});
        });
        </script>-->
---------------------------------------------------------------------------
Cuando click en el botón no sucede nada, pero si cambio la variable php a una que contiene 1 sola linea de texto (var contenido = '<?php echo $nombre; ?>';), entonces el script funciona al hacer click al botón aparece el texto. Alguien podría decirme como solucionar este problema por favor?

Gracias
Prueba cambiando esto:

Código PHP:
Ver original
  1. $resultado= mysql_query($consulta,$conex) or die (mysql_error());

por esto:

Código PHP:
Ver original
  1. $resultado= mysql_query($conex,$consulta) or die (mysql_error());

o esto:

Código PHP:
Ver original
  1. $resultado= mysqli_query($conex,$consulta) or die (mysql_error());

Y por favor usa el Highlight del foro.
__________________
¿Te sirvió la respuesta? Deja un +1
  #7 (permalink)  
Antiguo 25/03/2015, 08:28
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Variable php multiline a JS

Cita:
Iniciado por NueveReinas Ver Mensaje
Prueba cambiando esto:

Código PHP:
Ver original
  1. $resultado= mysql_query($consulta,$conex) or die (mysql_error());

por esto:

Código PHP:
Ver original
  1. $resultado= mysql_query($conex,$consulta) or die (mysql_error());

o esto:

Código PHP:
Ver original
  1. $resultado= mysqli_query($conex,$consulta) or die (mysql_error());

Y por favor usa el Highlight del foro.
Listo, si llamo la variable directamente dentro de textarea aparece,
<textarea><?php echo "$contenido"?></textarea>

pero lo que necesito es que el textarea este vacio y se llene al hacer click en el botón,
el problema esta a la hora de convertir la variable php a js D:
  #8 (permalink)  
Antiguo 25/03/2015, 08:41
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Variable php multiline a JS

Cita:
Iniciado por avsg1991 Ver Mensaje
Listo, si llamo la variable directamente dentro de textarea aparece,
<textarea><?php echo "$contenido"?></textarea>

pero lo que necesito es que el textarea este vacio y se llene al hacer click en el botón,
el problema esta a la hora de convertir la variable php a js D:
Prueba con esto:

Código PHP:
Ver original
  1. <?php
  2. $contenido = "Holaaaa";
  3. ?>

Código HTML:
Ver original
  1.         $(document).ready(function(){
  2.         var contenido = '<?php echo $contenido; ?>';
  3.        
  4.         $("#boton").click(function(){
  5.         $('textarea').val(contenido);});
  6.         });
  7.  
  8. <div id="boton">CLICK AQUI</div>

En todo caso, añádele un ID al textarea y entonces, en lugar de

Código Javascript:
Ver original
  1. $('textarea').val(contenido);});

deberá ser

Código Javascript:
Ver original
  1. $('#tuID').val(contenido);});

__________________
¿Te sirvió la respuesta? Deja un +1
  #9 (permalink)  
Antiguo 25/03/2015, 09:20
 
Fecha de Ingreso: diciembre-2014
Mensajes: 5
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Variable php multiline a JS

Cita:
Iniciado por NueveReinas Ver Mensaje
Prueba con esto:

Código PHP:
Ver original
  1. <?php
  2. $contenido = "Holaaaa";
  3. ?>

Código HTML:
Ver original
  1.         $(document).ready(function(){
  2.         var contenido = '<?php echo $contenido; ?>';
  3.        
  4.         $("#boton").click(function(){
  5.         $('textarea').val(contenido);});
  6.         });
  7.  
  8. <div id="boton">CLICK AQUI</div>

En todo caso, añádele un ID al textarea y entonces, en lugar de

Código Javascript:
Ver original
  1. $('textarea').val(contenido);});

deberá ser

Código Javascript:
Ver original
  1. $('#tuID').val(contenido);});

Funciona correctamente, el problema es el siguiente, tengo dos variables
<?
$nombre = "pedro";
$contenido = " este es
una variable
multi lineal";
?>

el botón funciona cuando coloco en el stript var contenido = '<?php echo $nombre; ?>'; o cualquier otra variable corta de una linea.

pero cuando uso
var contenido = '<?php echo $contenido; ?>';
el textarea se queda en blanco
  #10 (permalink)  
Antiguo 25/03/2015, 09:26
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Variable php multiline a JS

Cita:
Iniciado por avsg1991 Ver Mensaje
Funciona correctamente, el problema es el siguiente, tengo dos variables
<?
$nombre = "pedro";
$contenido = " este es
una variable
multi lineal";
?>

el botón funciona cuando coloco en el stript var contenido = '<?php echo $nombre; ?>'; o cualquier otra variable corta de una linea.

pero cuando uso
var contenido = '<?php echo $contenido; ?>';
el textarea se queda en blanco
Entonces prueba poniendo esa "multi-lineal" en una sola línea. Debería funcionar igual.

Código PHP:
Ver original
  1. $nombre = "pedro";
  2. $contenido = "este es una variable multi lineal";

Código HTML:
Ver original
  1.         $(document).ready(function(){
  2.         var total = '<?php echo $nombre; ?>'+' <?php echo $contenido; ?>';
  3.        
  4.         $("#boton").click(function(){
  5.         $('textarea').val(total);});
  6.         });
  7.  
  8. <div id="boton">CLICK AQUI</div>
__________________
¿Te sirvió la respuesta? Deja un +1

Etiquetas: javascript+php
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 00:57.