anzi facciamo un esempio semplice.
il js richiama un php, che prende dati da una tabella mysql. Una chat, dove ogni record è composto da ID, name, e testo. alla cui fine ottengo "tanti"
echo $id." ---".$name." ---".$text." ---";
in fila, separati appunto da " ---". $text contiene del testo con tag, tipo "grassetto e <u>sottolineato</u>" ecc ecc che io vorrei che nella visualizzazione venissero interpretati, (cioè vedere "grassetto e sottolineato" )
il js cosa fa:
codice:
if (httpReceiveChat.readyState == 4) {
results = httpReceiveChat.responseText.split('---'); //the fields are seperated by ---
if (results.length > 2) {
for(i=0;i < (results.length-1);i=i+3) { //goes through the result one message at a time
inserisci_frase(results[i+1],results[i+2]); //inserts the new content into the page
}
lastID = results[results.length-4];
}
setTimeout('receiveChatText();',4000); //executes the next data query in 4 seconds
}
separa i pezzi indicati con il " ---", poi prende l' 1 e il 2 ($name e $text come si vede dal pezzo php sopra) e li invia alla funzione inserisci frase.
codice:
function inserisci_frase(liName,liText) {
frase = document.createTextNode(liText);
document.getElementById("outputList").appendChild(frase);
}
outputList è l'ID del div nella pagina html che governa il tutto, e che è, sostanzialmente, la chat.
NELL'ESEMPIO HO IGNORATO VOLUTAMENTE $name, perché stavo cercando di capire come avere la formattazione di quello che è contenuto in $text.
mi sembra di aver capito che document.createTextNode trasforma tutto in testo. quindi qui già mi frego. e purtroppo document.getElementById("outputList").appendChild( liText); non funziona, devo fare il nodo per forza.
cosa posso fare? come posso modificare nel modo corretto il codice?
grazie dell'aiuto