Foros del Web » Programando para Internet » Javascript »

Javascript, enter, textarea php

Estas en el tema de Javascript, enter, textarea php en el foro de Javascript en Foros del Web. Hola. Tengo una web con Javascript y PHP. El caso es que tengo más de un textarea que ya tiene unos valores al cargar la ...
  #1 (permalink)  
Antiguo 03/03/2010, 05:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Javascript, enter, textarea php

Hola.
Tengo una web con Javascript y PHP.
El caso es que tengo más de un textarea que ya tiene unos valores al cargar la web, y dos botones que apuntan a 2 funciones Javascript que cambian este valor.
El problema es cuando el valor 'por defecto' de estos textareas tiene mas de una línea, se queda desactivado todo el Javascript de la web.

Alguien sabe por que?
  #2 (permalink)  
Antiguo 03/03/2010, 06:02
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: Javascript, enter, textarea php

no veo como multiples lineas en un textarea pueda afectar los scripts. tienes que mostrar un ejemplo que podamos reproducir para comprender el asunto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 03/03/2010, 06:16
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Javascript, enter, textarea php

ya, a mi también me extraña, pero está comprobado. Cuando el textarea es de una linea, todo funciona perfecto, y cuando es de más de una, no.

así es el código:

Textarea:

<td><textarea id='pago' name='pago' rows=6 cols=95>Primera Linea
Segunda Linea</textarea></td>

Script:
function recover_payment(){
var p = document.getElementById("pago");
alert("Recuperando Forma de Pago");
p.value=("Primera Linea
Segunda Linea");
}
  #4 (permalink)  
Antiguo 03/03/2010, 06:22
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Javascript, enter, textarea php

Vale, el problema, obviamente no es del Textarea, simplemente es el sitio donde se ve el texto y por eso me ha llevado a equivocación. El problema está en el javascript.
En vez de:

p.value=("Primera Linea
Segunda Linea");

tendría que ser algo como
p.value=("Primera Linea(código Enter)Segunda Linea");

Alguien sabe como se hace?
  #5 (permalink)  
Antiguo 03/03/2010, 06:38
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: Javascript, enter, textarea php

ahora se entiende. en javascript, un string no se puede dividir en multiples lineas porque el linefeed lo interpreta como finalizacion de una instruccion. es decir, tiene el mismo signifiado que el punto y coma. para introducir un salto de linea en un string se utiliza una combinacion especial de escape.
Código:
"primera linea\nsegunda linea\nasi sucesivamente..."
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 03/03/2010, 06:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Javascript, enter, textarea php

muchas gracias. zerokilled.

Entonces, si el valor con 2 lineas lo tengo en una variable de php y actualmente la imprimo así:

p.value=("<?php echo $payment;?>");


lo tendría que sustituir por algo parecido a

p.value=("<?php echo str_replace("(Qué codigo va aqui?)","\n",$payment);?>");


Muchas gracias.
  #7 (permalink)  
Antiguo 03/03/2010, 06:58
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: Javascript, enter, textarea php

la verdad no sabria decirte con exactitud porque no escribo en php. no dudo que con str_replace se pueda hacer pero creo que es mas facil con addcslashes.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 03/03/2010, 07:01
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Javascript, enter, textarea php

SOLUCIONADO.

Gracias por todo zerokilled.

Al final lo he solucionado así:

p.value=("<?php echo str_replace("\r\n","\\n",$payment);?>");

Sustituye el caracter \r\n por \n (no olvidar la \ de escape).

Saludos!

Etiquetas: enter, php, 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:21.