2016-02-16 3 views
2

Пожалуйста, несите меня, поскольку это нелегко объяснить. У меня есть поле в базе данных MySQL, которое было помещено туда из формы с текстовым входом. Мне кажется, что разрывы строки кодируются как «/ п»добавление разрыва строки в javascript из php

Когда я получить данные, я могу отобразить его на экране правильно, используя следующий PHP строку

$main_article1 = str_replace("\n", "<br />", $row[main_article]); 
echo $mainarticle1; 

Однако теперь приходит хитрый немного. Затем я хочу вставить этот текст в скроллер, который использует Javascript.

код в этом скрипте:

var pausecontent=new Array() 

pausecontent[0]='<?php echo $main_article1;?>' 

Я просто получаю пустой экран.

Если я удаляю разрывы строк из текста в базе данных, все работает хорошо - текст main_article появляется в скроллере так, как он должен - он останавливается только тогда, когда разрывается линия.

Кто-нибудь знает, как я могу получить разрывы строк в поле базы данных, чтобы пройти через PHP-скрипт и появиться в тексте скроллера в Javascript?

Я также попытался:

$main_article1 = str_replace("/n>", "%0D%0A", $row[main_article]); 

, но это не работает, либо

Я надеюсь, что смысл того, что я пытаюсь сделать.

Большое спасибо заранее.

Tog

Вот обновление

$main_article = 'This is a test<br />This is a test' 

код, сгенерированный PHP в JS должен быть:

pausecontent[0]='This is a test<br />This is a test' 

(все неактивны), но то, что я получаю:

pausecontent[0]='This is a test 
This is a test' 

и разрыв строки в коде JS вызывает его на провал, потому что текст больше не неактивен после обрыва линии

+0

Все в журналах ошибок? Любая причина не использовать функцию 'nl2br'? Является ли вся страница пустой или просто JS не выполняется, если только JS что-нибудь в консоли? – chris85

+0

Шаг первый: проверьте сгенерированный код JS - это выглядит так, как должно быть? – CBroe

+0

Получаю тот же результат, используя функцию nl2br. Страница загружается нормально, но JS не запускается. Если я вводим текст, который не имеет разрыва строки, JS работает нормально –

ответ

0

получил его, наконец, после того, как слишком много дней головной боли!

Я смотрел на неправильных теорий замены

Ответ использовать следующую строку:

$main_article1 = preg_replace("/\r\n|\r|\n/",'<br/>',$row[main_article]); 

Теперь он работает отлично.

Спасибо всем за помощь.

С уважением

TOG

+0

Просто используйте 'nl2br', не нужно повторно изобретать функцию. 'Возвращает строку с '
' или '
', вставленной перед всеми символами новой строки (\ r \ n, \ n \ r, \ n и \ r).' Http://php.net/manual/en/function.nl2br. php – chris85

+0

@ chris85 Это не сработало, потому что он вставил тег '
' перед другими, но мне нужно было полностью удалить любые экземпляры '/ r/n', поэтому функция preg_replace работала там, где функция nl2br не работа. :-) –

0

Вы можете попробовать функцию nl2br()

$main_article1 = nl2br($row[main_article]); 

также предлагает оставив пространство между кодом и закрытие PHP тега (?>)

pausecontent[0]='<?php echo $main_article1; ?>' 
+0

Пробовал обе из них, но проблема все еще остается. –

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