2014-04-18 135 views
0

我有這行給我一個錯誤,因爲該值包含HTML代碼。把HTML代碼到輸入字段

document.getElementById(\'longstory\').value = \''.$row['longstory'].'\'; 

有沒有簡單的方法來傳遞一樣在編碼,然後顯示它當自己的價值

<textarea class="form-control" id="longstory" name="longstory" placeholder="Longstory"></textarea><br /> 

得到它顯示爲HTML進行到底用戶?

+1

該錯誤可能是由於您的報價較差。如果你給我們一個jsfiddle或者只是一小段(少於20行)的代碼,我們可以用它來重現你的錯誤,我們可以幫助你更好。 –

回答

0

試試這個:

echo "document.getElementById('longstory').value = " . json_encode(html_entity_decode($row['longstory'])) . ";"; 

html_entity_decode()將解釋值HTML實體代碼,並將其轉換成普通的PHP字符。然後json_encode()的輸出將是Javascript語法的值。

問題不在於它包含HTML,而在於它包含不允許在Javascript字符串中允許使用的字符,例如未轉義的引號和字面換行符。 json_encode正確編碼所有內容。

+0

'json_encode'是一個標準的JavaScript函數嗎?我沒有意識到這一點。還有其他人已經成爲標準。您可以使用舊版瀏覽器的庫。 –

+0

這是一個標準的PHP函數。 – Barmar

+0

他清楚地在他的PHP腳本中生成Javascript,這就是'$ row ['longstory']'是 – Barmar

0

嘗試在傳給js之前使用htmlspecialchars和addslashes函數。

document.getElementById(\'longstory\').value = \''.addslashes($row['longstory']).'\'; 
+0

htmlspecialchars是爲HTML,而不是Javascript。 – Barmar

+0

「值包含HTML代碼...」是不是OP想要的,以編碼HTML? – volter9

+0

他將HTML代碼放入一個Javascript字符串,他不直接把它直接放入HTML本身。 – Barmar