Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите...Незавершенная строковая константа (https://javascript.ru/forum/dom-window/11015-pomogite-nezavershennaya-strokovaya-konstanta.html)

lukingnu 02.08.2010 13:16

Помогите...Незавершенная строковая константа
 
Есть код
$f="В лесу родилась елочка,
     в лесу она росла     ";
     print "<SCRIPT TYPE='text/javascript'><!--
                 varv p='".$f."';
                           --></SCRIPT> ";


Как сделать так,чтобы не выводилась ошибка "незавершенная строковая константа"....Скрипт дан для примера,на вопросы типа "Зачем это надо?" не отвечаю

exec 02.08.2010 13:38

$f="В лесу родилась елочка, \\
 в лесу она росла     ";


Смысл в том, чтобы перенос строки экранировать. Мб. надо просто \, я не знаю как там в php пишется.

Ещё подойдёт \n:

$f="В лесу родилась елочка, \n в лесу она росла     ";

chippolino 02.08.2010 17:40

<?php
	$f='В лесу родилась елочка,\r\n\
	в лесу она росла,\r\n\
	зимой и летом стройная...';
    echo "<script type=\"text/javascript\">//<!--\r\n\tp='".$f."';\r\n\talert(p);//-->\r\n</script>";
?>

Gvozd 03.08.2010 01:07

chippolino,
ты хотя бы проверил свой код?
нет?молодец.
в дальнейшем проверяй, прежде чем писать глупость
2 lukingnu,
exec, все верно вам сказал
двойной слэш, внутри PHP-шной строки в двойных кавычках экранируется, и выходит слэш-перевод строки
а слеш с переводом строки верная конструкция уже с точки зрения JS, так как переводы строк в нем экранируются

chippolino 03.08.2010 09:41

после php обработки:
<script type="text/javascript">//<!--
	p='В лесу родилась елочка,\r\n\
	в лесу она росла,\r\n\
	зимой и летом стройная...';
	alert(p);//-->
</script>

Gvozd 03.08.2010 09:55

chippolino,
чтож.
приношу свои извинения за необоснованный гон.
не заметил замыкающего слеша
извини.

lukingnu 03.08.2010 12:06

Всем спасибо,проблема решена

n-sia 21.06.2012 13:19

Та же ошибка выскакивает:
<script type="text/javascript"> 
      $("#qu").oneTime("<?php  echo ($r_t[0]); ?>s", function() {  
      $(this).submit() ;     }) ;
       
      $("#timer").everyTime("1s",function(i) {
      var a=<?php  echo ($r_t[0]); ?> - i;
      $(this).text(a);
    });    
       
</script>


Часовой пояс GMT +3, время: 07:52.