2012-01-17 23 views
8

Tengo una función jquery AJAX que recupera algunas marcas HTML y las muestra en la página. También me gustaría mostrar el código html de este HTML devuelto. He buscado una solución pero no he encontrado ninguna. Puede ayudarme alguien, por favor. Muchas graciasmostrar código de respuesta html devuelto por ajax, Jquery

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

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

Por código html ¿quiere decir que literalmente quiere que la página web muestre '

' o prefiere que represente el div? – Tomas

+1

Mire esta [pregunta] (http://stackoverflow.com/q/24816/617996). – PrimosK

Respuesta

10

intente utilizar el texto() función. Esto escapará y mostrará el código 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

Quizás esto sea obvio, pero para mostrar el código HTML, a menudo querrá que el nodo '# output_code' sea una etiqueta' pre' para que se muestren los espacios y saltos de línea. – nobar

0

Coloque la salida en un área de texto. Mantendrá el formateo. (Si el HTML contiene un área de texto, primero tendrá que escapar).

0

Puede intentar utilizar escape en los datos HTML. Prueba este

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

El código regresó y está representada por el AJAX es cualquier cosa creada y la salida por el script PHP que está llamando. Todo el código debe estar presente, por lo que puede necesitar ajustar la salida de PHP para incluir los elementos que desee.

¿Qué hace la página PHP? trabajo de base de datos? consulta y visualización de resultados? Lo que debería ver en los resultados de AJAX es lo mismo que obtendría si probara el script de PHP por sí mismo.

1

Puede poner en su html con "código" y debe mostrar tal cual sin que el html:

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

No creo que esto funcione. – nobar

0

Desde su código se parece a esto se envía de nuevo a partir de un archivo PHP De ser así, podría usar una de las funciones de htmlentities de PHP para convertir el resultado antes de enviarlo nuevamente a la función Ajax, y se mostrará muy bien, preferiblemente en una etiqueta previa html.

También debe usar jQuery text() y no html().

Si desea resaltado de sintaxis, números de línea y muchas otras cosas, GeSHi y Syntax Highlighter son utilizados por muchos sitios para mostrar fragmentos de código.

Cuestiones relacionadas