2012-03-01 5 views
0

У меня есть ряд данных, которые я хочу разместить внутри массива в javascript. Я использую Wordpress как КМВ, и мои данные выглядит следующим образом (содержание поста):Преобразуйте новую строку, чтобы исправить значение Javascript

line1 
line2 
line3 

Однако, когда я пытаюсь искать данные с поста я вижу этот код в JavaScript для, скажем, 3 сообщения:

var locations=['line1 
line2 
line3','line1 
line2 
line3','line1 
line2 
line3']; 

Я получаю эту ошибку, когда я смотрю в консоли: неперехваченного SyntaxError: Неожиданный токен НЕЗАКОННОГО. Я искал здесь много ответов, но мне не удалось сломать ногу. Однако я взглянул на вкладку HTML содержания, нет <br/>, поэтому новая строка не является html-кодом.

Я также попытался избежать специальных символов в PHP, как это, но она выскакивает ту же ошибку:

echo '\''.htmlspecialchars (get_the_content()).'\','; 

Однако, если содержание в одной строке, как «некоторый текст» оказывается для запуска ОК.

Любые идеи?

Спасибо!

+0

Можем ли мы отформатировать данные, очистить специальные символы, прежде чем запускать их через PHP-скрипт? – approxiblue

+0

Я так думаю ... как бы вы это сделали? Я запускаю 'get_posts ($ args)' очень простым способом, поэтому нет сложного материала. – Mike

+0

Это означает, что вы ничего не можете сделать с входными данными перед отправкой на сервер, верно? Вы работаете только с PHP. У вас уже есть ответ. – approxiblue

ответ

2

Используйте json_encode(), чтобы превратить его в литерал JavaScript перед его выводом.

+0

Хороший, но содержимое отображалось в одной строке. Я, наконец, сделал это 'array_push ($ locations, nl2br (get_the_content());", а затем 'echo 'var locations ='. json_encode ($ locations). ';' ', который отлично справился с этой задачей. – Mike

1

На самом деле это вопрос php. Javascript не может «восстановить» из таких синтаксических ошибок сам по себе.

echo "'".str_replace(
    array("'", "\n", "\r"), 
    array("\\'", "\\n", "\\r"), 
    get_the_content() 
)."'"; 
+0

На самом деле для этого я думаю, что 'nl2br' работает лучше, но спасибо за отправную точку! – Mike

+1

Да, если вы хотите вывести его в html. В конце концов, идея с 'json_encode' лучше. – kirilloid

Смежные вопросы