Хранение текста с разрывом строки в массиве JavaScript - PullRequest
0 голосов
/ 15 марта 2012

У меня есть форма, где пользователь может ввести заметку через текстовое поле.

При вводе заметки пользователь может нажать «ввод», чтобы добавить разрывы строк, а также введенная заметка может состоять из нескольких строк и храниться в столбце таблицы типа varchar(2000) latin1_swedish_ci

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

Моя проблема заключается в том, что если заметка занимает более 1 строки или содержит разрывы строк, она, похоже, не сохраняется в этом массиве и функции оповещенияничего не предупреждает об этой конкретной заметке.

Тем не менее, она отображается правильно, если я отображаю ее, используя простой код рубина.

Вот пример моего кода:

/********** loop through the resultset and store the values in the test_array **********/
<% @saved_note.each do |note| %>
    <script type="text/javascript">
        testarray[note_counter] = '<%= note.value %>';
        alert(testarray[note_counter]);
        note_counter++;
    </script>
    <%= note.value %> 
<% end %> 

Любое предложение является наиболее ценным.

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Если note.value занимает более одной строки, вы получите такой результат:

testarray[note_counter] = 'Dear tanya,
how are you doing today?
sincerely, 
user';

Проблема здесь в том, что javascript не поддерживает многострочные строки без некоторого массажа . Если в note.value есть какие-либо символы перевода строки, вам нужно их экранировать (см. в этом примере ) перед их распечаткой.

1 голос
/ 15 марта 2012

Вы можете попробовать

testarray[note_counter] = <%= raw note.value.to_json %>;

Персонал. Я храню это в AplicationHelper

def json value
  raw value.to_json
end

, а затем на ваш взгляд

testarray[note_counter] = <%= json note.value %>;
0 голосов
/ 15 марта 2012

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

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