2012-01-17 74 views
8

我有一個jQuery AJAX函數,它檢索一些HTML標記並將其顯示在頁面上。我也想顯示返回的HTML的html代碼。我已經四處尋找解決方案,但沒有找到任何解決方案。有人可以請幫助。非常感謝顯示ajax返回的響應html代碼,jquery

$.post('get_news.php', $("#gifForm").serialize(), function(data) { 
    //Show HTML 
    $('#output').html(data); 

    //Show HTML code 
    $('#output_code').html(data); 
}); 
+0

通過html代碼你的意思是說,你真的想讓網頁顯示'

'或者你想讓它呈現div嗎? – Tomas 2012-01-17 20:01:57

+1

看看這個[問題](http://stackoverflow.com/q/24816/617996)。 – PrimosK 2012-01-17 20:03:50

回答

10

嘗試使用文本()函數。這將轉義並顯示html代碼。 http://api.jquery.com/text/

$.post('get_news.php', $("#gifForm").serialize(), function(data) { 
    //Show HTML 
    $('#output').html(data); 
    //Show HTML code 
    $('#output_code').text(data); 
}); 
+0

也許這是顯而易見的,但爲了顯示HTML代碼,您通常希望'#output_code'節點成爲'pre'標籤,以便顯示空格和換行符。 – nobar 2013-02-03 21:50:44

0

將輸出放在textarea中。它會保持格式。 (如果HTML包含textarea,則必須先將其轉義)。

0

您可以嘗試在HTML數據上使用轉義。試試這個

$.post('get_news.php', $("#gifForm").serialize(), function(data) { 
    //Show HTML 
    $('#output').html(data); 
    //Show HTML code 
    $('#output_code').html(escape(data)); 
}); 
0

AJAX返回並顯示的代碼是任何由您調用的PHP腳本創建和輸出的代碼。所有的代碼都應該存在,所以你可能需要調整PHP的輸出以包含你想要的元素。

PHP頁面有什麼作用?數據庫工作?查詢並顯示結果?你應該在AJAX結果中看到的是你自己嘗試php腳本時得到的結果。

1

你可以圍繞你的HTML用「代碼」,並作爲是不顯示HTML應該顯示它:

$('#output_code').html("<code>" + data + "</code>"); 
+0

我不認爲這有效。 – nobar 2013-02-03 21:11:59

0

從你的代碼看起來這是從一個PHP文件送回,如果是這樣,你可以使用PHP的htmlentities函數之一來轉換結果,然後再發送回Ajax函數,它會顯示得很好,最好在html預標籤中顯示。

你還應該使用jQuery text()而不是html()。

如果您需要語法突出顯示,行數和其他大量內容,很多站點都會使用GeSHiSyntax Highlighter來顯示代碼片段。