2012-01-17 13 views
8

Ho una funzione jQuery AJAX che recupera alcuni markup HTML e li visualizza sulla pagina. Vorrei anche mostrare il codice html di questo HTML restituito. Ho cercato una soluzione ma non ne ho trovata nessuna. Qualcuno può aiutarmi per favore. Molte grazievisualizza codice HTML di risposta restituito da ajax, Jquery

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

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

Con codice html intendi letteralmente che vuoi visualizzare la pagina web '

' o preferiresti rendere il div? – Tomas

+1

Guarda questa [domanda] (http://stackoverflow.com/q/24816/617996). – PrimosK

risposta

10

provare a utilizzare la funzione text(). Questo sfuggirà e visualizzerà il codice 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

Forse è ovvio, ma per visualizzare il codice HTML spesso si desidera che il nodo '# output_code' sia un tag' pre' in modo che gli spazi e le interruzioni di riga vengano visualizzati. – nobar

0

Mettere l'output in una textarea. Manterrà la formattazione. (se l'HTML contiene una textarea, dovrai prima scappare).

0

È possibile provare a utilizzare l'escape sui dati HTML. Prova questo

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

Il codice restituito e visualizzato dal AJAX è creato e l'uscita dallo script PHP che si sta chiamando. Dovrebbe essere presente tutto il codice, quindi potrebbe essere necessario regolare l'output del PHP per includere gli elementi desiderati.

Cosa fa la pagina PHP? lavoro di database? interrogare e visualizzare i risultati? ciò che dovresti vedere nei risultati AJAX è la stessa cosa che avresti se avessi provato lo script php da solo.

1

È possibile circondare il vostro HTML con "codice" e dovrebbe visualizzarlo come è senza rendering html:

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

Non penso che funzioni. – nobar

0

dal codice sembra che questo viene rinviato da un file PHP , in tal caso, potresti semplicemente utilizzare una delle funzioni htmlentities di PHP per convertire il risultato prima di inviarlo alla funzione Ajax, e verrà visualizzato correttamente, preferibilmente in un tag pre html.

Si dovrebbe anche usare jQuery text() e non html().

Se si desidera evidenziare la sintassi, numeri di riga e molte altre cose, GeSHi e Syntax Highlighter viene utilizzato da molti siti per visualizzare frammenti di codice.

Problemi correlati