2012-03-15 33 views
0

我有一個表單,用戶可以通過文本框輸入註釋。在javascript數組中存儲帶換行符的文本

當進入筆記,用戶可以按「確認」鍵添加換行符並輸入音符可以由多行和它存儲在類型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 %> 

任何建議最理解。

非常感謝

回答

2

如果note.value跨越多個行,你會產生這樣的結果:

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

這裏的問題是,JavaScript不支持多行字符串不some massaging。如果您有任何種類的換行符在note.value中掛出,則在打印出來之前,您需要將它們轉義出來(請參閱this example)。

+0

感謝您的建議 – tanya 2012-03-15 18:09:55

0

我無法找到我如何在PHP處理與一個確切的例子,但這個想法是嘗試所有符號解析其ANSI代碼和檢查一樣,所需的符號。只是一個想法壽。

1

您可以嘗試

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

Personnaly我存儲在AplicationHelper

def json value 
    raw value.to_json 
end 

,然後在您的視圖

testarray[note_counter] = <%= json note.value %>; 
相關問題