2013-07-22 57 views
0

在一個PHP + MySQL的項目,有文本從包含HTML標籤一個MySQL表來的字符串,但這些標籤永遠無法通過谷歌瀏覽器或我想還沒有任何瀏覽器中顯示:HTML不會呈現,爲什麼會發生?

enter image description here

你可以看到HTML(p,strong)沒有被瀏覽器解釋。

所以結果是: enter image description here

編輯:HTML/PHP

<div class="winery_description"> 
    <?php echo $this->winery['description']; ?> 
</div> 

$this->winery是SQL選擇的數組結果。編輯2:我是世界上最愚蠢的人,源包含實體。所以新的問題是:如何強制實體被解釋?

真正來源: enter image description here

有什麼建議?謝謝!

+2

能否請你告訴創建這個HTML/PHP代碼? – Steve

+0

如果您查看源而不是DOM,您會看到什麼? – Barmar

+0

我同意@Barmar。做一個「查看源代碼」,因爲你在Firebug/Developer Console中看不到任何編碼。 – Steve

回答

0

您可能正在使用innerTexttextContent來設置div的內容,它只是用一個文本節點替換div的子節點。

改爲使用innerHTML來讓瀏覽器解析HTML並創建合適的DOM節點。

+0

這不是JavaScript驅動的,這是直接關閉數據庫。感謝您的迴應併爲此感到抱歉。 – TomShreds

+0

@TomShreds然後,它必須包含HTML實體。請注意'die($ var);'仍然允許瀏覽器解析這些HTML實體,您仍然會看到represntation,而不是實際的字符。試試:'echo'

',print_r($var, true),'
';' – Paulpro

+0

@TomShreds對不起,那仍然不會顯示它們。執行'echo htmlentities($ var);'來查看HTML頁面中實際的值。或者,或者輸出頁面爲'Content-Type:text/plain' – Paulpro

0

@Paulpro提供的答案是正確的。

還要注意的是,如果你使用的是jQuery,一定要使用,而不是.text()方法.html()方法:

$('#your_element').html('<h1>This works!</h1>'); 

$('#another_element').text('<h2>Wrong; you will see the <h2> in the output');