2016-02-16 21 views
2

請耐心等待,因爲這不容易解釋。我在一個MySQL數據庫中有一個字段,它是從一個帶有textarea輸入的表單放到那裏的。這在我看來,換行符編碼爲「/ N」從php加入換行符到javascript

當我檢索數據,我可以在屏幕上正確使用下面的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]); 

但是,這並不工作,要麼

我希望我做的一切,我試圖做的感覺。

非常感謝提前。

火車

這裏是一個更新

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

的JS內由PHP生成的代碼應該是:

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]); 

現在,它完美的作品。

感謝大家的幫助。

問候

火車

+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

您可以嘗試

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

也是我建議留下的nl2br()函數你的代碼和正在關閉的php標籤之間的空格(?>

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

試過這兩個,但問題仍然存在 –