2012-01-17 3 views
8

У меня есть функция AJAX jquery, которая извлекает некоторую разметку HTML и отображает ее на странице. Я также хотел бы отобразить html-код этого HTML-кода. Я искал решение, но не нашел. Может кому-то помочь. Большое спасибоdisplay html код ответа, возвращаемый ajax, 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

+1

Посмотрите на это [вопрос] (http://stackoverflow.com/q/24816/617996). – PrimosK

ответ

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

0

Поместите вывод в текстовое поле. Он будет поддерживать форматирование. (если HTML содержит текстовое поле, вам сначала придется сбежать от него).

0

Вы можете попробовать использовать escape на данных 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

0

Из кода выглядит это отправляется обратно из PHP файла , если это так, вы можете просто использовать одну из функций htmlentities PHP для преобразования результата перед отправкой обратно в функцию Ajax, и он будет отображаться только отлично, предпочтительно в html pre tag.

Вы также должны использовать текст jQuery(), а не html().

Если вы хотите выделить синтаксис, номера строк и множество других вещей, GeSHi и Syntax Highlighter используется многими сайтами для отображения фрагментов кода.

Смежные вопросы