Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/08/2006, 03:45
pepajul
 
Fecha de Ingreso: agosto-2006
Mensajes: 1
Antigüedad: 17 años, 9 meses
Puntos: 0
Bueno, supongo, a juzgar por el tiempo que hace que se posteó esta pregunta que Talle ya lo habrá resuelto, pero pongo aquí la respuesta para el que, como yo, llegue aquí con el mismo problema.


Yo resolví un caso parecido escapando dos veces la "n", es decir, usando "\\n" en lugar "\n".

En mi caso el motivo era que estaba usando el salto de linea dentro de un echo de php. Algo así:


echo "<script language='javascript'>alert(\"Hola\nAdios\");</script>";


Esto no funciona porque, al interpretar el php la linea, genera la siguiente en el html:


<script language='javascript'>alert("Hola
Adios")</script>


es decir, entre el "Hola" y el "Adios" hay un salto de linea "de verdad", no un "\n", que es lo que el alert necesitaría para poder interpretarlo correctamente.

Para resolverlo, hay que escapar la "\", para que no la interprete como escape de la "n", sino como una simple "barra invertida". Al hacer


echo "<script language='javascript'>alert(\"Hola\\nAdios\");</script>";


en html se genera


<script language='javascript'>alert("Hola\nAdios")</script>


y, ahora sí, sale un alert como el que queríamos: "Hola" en una línea y "Adiós" en otra.


Otra posibilidad en este caso es meter el mensaje del alert entre comillas simples, lo que evita que PHP interprete esa cadena. Es decir, lo siguiente:


echo "<script language='javascript'>alert('Hola\nAdios');</script>";


que genera exactamente lo mismo


<script language='javascript'>alert("Hola\nAdios")</script>


Nótese que el propio PHP cambia las comillas simples por dobles automaticamente, ya que en javascript las simples son para caracteres y las dobles para strings.

En fin, espero haber ayudado a alguien. Saludos!