PHP строка в JavaScript - PullRequest
       7

PHP строка в JavaScript

2 голосов
/ 25 января 2012

Я пытаюсь скопировать строку

 $str = '
         this
         is
         my
         string';

в переменную JavaScript, например,

 var str1 = '<?php echo $str ?>';

, но когда я это делаю, я получаю ошибку

Uncaught SyntaxError: Unexpected token ILLEGAL

Если вы спрашиваете себя, почему я это делаю, я создаю <table> с PHP и вставляю его в переменную $str, а затем хочу использовать его в функции JavaScript.

Ответы [ 5 ]

5 голосов
/ 25 января 2012

Вы должны просто использовать json_encode() из http://www.php.net/manual/en/function.json-encode.php

Пример:

var str1 = <?php echo json_encode($str) ?>;

Он заботится о преобразовании новых строк в \n, экранировании любых других специальных символов при необходимости, сохранении пробелов и т. Д.

Пример вывода для вашей строки:

var str1 = "\n         this\n         is\n         my\n         string";
0 голосов
/ 25 января 2012

JavaScript не любит многострочные строковые литералы или имеет синтаксис here-doc. Попробуйте изменить строку на

$str = ' \
         this \
         is \
         my \
         string';
0 голосов
/ 25 января 2012

Javascript не исключает многострочные строки. Вы можете поставить обратную косую черту перед концом каждой строки, если хотите, чтобы она выглядела так.

0 голосов
/ 25 января 2012

Проблема в символе EOL в вашей строке PHP.

Используйте его следующим образом (после замены всех символов EOL пробелом):

var str1 = '<?php echo str_replace("\n", " ", $str) ?>';
0 голосов
/ 25 января 2012

Вы пробовали это?

var str1 = '<?php echo $str; ?>';

Обратите внимание на точку с запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...