Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод JS значения в одну строку в HTML (https://javascript.ru/forum/misc/6678-vyvod-js-znacheniya-v-odnu-stroku-v-html.html)

velo 14.12.2009 19:50

Вывод JS значения в одну строку в HTML
 
Подскажите, как вывести получаемое из PHP скрипта значение в JS,
так чтобы это значение выводилось в одну строку, иначе JS воспринимает это как ошибку.

Вот как это выглядит:
в РНР получаю временное содержимое файла (XML)

......
$file = $HTTP_POST_FILES['file']['tmp_name'];
$content = file_get_contents($file);


......


В JS мне нужно скормить это значение некоторому элементу формы:
Element.value = '<? $content ?>';


Однако на выходе поучаю следующее:

Element.value = '<? xml ........>
 <tag />
 <tag />
</xml>
';



Что соответственно интерпретируется как Ошибка: unterminated string literal

Подскажите, как сделать перенос строк,
т.е. наверное чтобы это приняло такой вид:

Element.value = '<? xml ........>'
 +'<tag />'
 +'<tag />'
+'</xml>'
';

Gvozd 15.12.2009 01:22

addcslashes()
PS разделом форума не ошиблись?

velo 15.12.2009 01:28

addcslashes() не убирает перевод строки при выводе в html

PS почему ошибся?
Это общий вопрос по JS о выводе многострочного значения

Gvozd 15.12.2009 01:36

Цитата:

Сообщение от velo
addcslashes() не убирает перевод строки при выводе в html

//код таки PHP-шный, заметьте
echo addcslashes('ff
fsd',"\r\n\"\'");//читайте внимательнее справку. это только минимальные возможности которые я щаз использовал

Цитата:

Сообщение от velo
Это общий вопрос по JS о выводе многострочного значения

почему же на него ответом является PHP-шный код?
как вывести многострочное значение в JS вы и сами знали
Цитата:

Сообщение от velo
Element.value = '<? xml ........>'
+'<tag />'
+'<tag />'
+'</xml>'
';

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

velo 15.12.2009 01:39

Да, наверно вы правы. Спасибо, попробую копнуть в сторону PHP
Я изначально хотел решить этот вопрос на стороне клиента а не сервера.

Gvozd 15.12.2009 01:47

вам таки религия не позволяет решить эту проблему на сервере?
если у вас так велико желание сделать это не на сервере, то переделывайте всю страницу под XHTML, и в скрытом теге или самом итоговом textarea в блоке CDATA выводите нужный вам текст, а потом получите обычным для JS способом
по-моему извращение, но также должно работать

velo 15.12.2009 03:35

Так в том то и дело, что textarea не простой формы, а ExtJS и соответственно задаётся видом:
xtype: 'textarea',
hidden: true, 
name: 'gpxcontent', 
value: '',


Пользователь загружает файл, он используется только как temp, на сервере не сохраняется, т.к. дальше он будет редактироваться пользователем.

Далее из этого поля берется информация (XML) и парсится для вывода пользователю.

Вот тут и возникает проблема с addcslashes - после этого XML не парсится, т.к. не распознаваем со слешами.

Пока что вижу единственный способ это создавать просто скрытое поле вне формы для работы с содержимым файла, а для сохранения передавать данные в форму....

Gvozd 15.12.2009 03:57

может быть так сделать?
а в iframe выводить сам XML без купюр?


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