2010-05-16 110 views
1

我有一個關於將值插入到我的MYSQL數據庫的輸入字段的問題。輸入字段中的HTML標記

首先,我有一個表單將數據從輸入字段保存到數據庫。一個額外的腳本過濾DIODE Á =>Á到html代碼。所以Állo將被保存爲Állo

當我從數據庫插入數據到'div'時,它顯示Állo。當我將數據插入到一個輸入字段它顯示Állo

我在做什麼錯

使用jQuery將數據保存到數據庫與沒有pagerefresh的.post的$方法。我還使用JQUERY $ .post方法從數據庫獲取數據,而不使用pagerefresh。

希望有人能幫助。

+0

爲什麼要將普通字符保存爲HTML實體?你只需要編碼在HTML中有特殊含義的字符('<>&',有時候是'''') – 2010-05-16 07:52:05

+0

我不知道更好的方法來確保在所有瀏覽器上都顯示相同的字符。並非所有瀏覽器都顯示良好,有時顯示爲'?' – Megapool020 2010-05-16 07:57:07

+0

正確的方法是與字符編碼一致,選擇一個(UTF-8是最好的)並堅持下去,並且記得告訴瀏覽器你也在使用它。 – 2010-05-16 07:57:45

回答

0

你真的不應該將數據保存到數據庫中。如果需要的話,你應該保存Állo並使用htmlspecialshars($my_value_from_db);(這是php不知道你服務器上的runnung是什麼,但是perl或其他語言有類似的功能)。如果您無法更改保存過程或更正舊條目,則可以使用html_entity_decode($bla)來顯示輸入字段中顯示的值(這是再次使用php)

+0

這個伎倆,我查了編碼,我需要utf8_encode我給我回的字符串。 – Megapool020 2010-05-16 13:16:23

0

您將HTML插入到div中,但直接設置輸入的DOM值屬性。

HTML實體轉換爲它在HTML中表示的內容,但value屬性期望文本不會將任何特殊含義歸於&

您應該將實際數據存儲在數據庫中,而不是其HTML視圖。轉換爲HTML應該在服務器端程序的外面處理(如果您使用的是MVC設計模式,則在視圖中)。

+0

Ok,tnx,但是當我從數據庫插入Á到輸入字段時,我的瀏覽器顯示'?'或其他符號而不是Á。我不想更改我的瀏覽器設置,因爲我的頁面的查看者必須看到Á而不是'?' – Megapool020 2010-05-16 08:22:34

0

有一個腳本可以反轉編碼腳本的功能,並在輸出到表單域時調用它。