Un'altra soluzione possibile è quella di utilizzare JSON(JavaScript Object Notation) al posto di XML.
In questo modo la creazione di un "linguaggio di comunicazione" tra PHP e JS avviene lato server.

Come i dati serializzati sono facilmente comprensibili da PHP, JSON è semplicemente comprensibile da javascript. In pratica JSON è una sintassi di javascript che permette di scrivere array e oggetti in modo semplice.

Un esempio di oggetto potrebbe essere questo:

codice:
var utente = { "nick" : "Fredx", "provenienza" : "milano" };
in questo modo utente.nick sarà uguale a "Fredx" e utente.provenienza sarà uguale a "milano"

un esempio di array è il seguente:

codice:
var utenti = ["Fredx", "saibal", "andr3a"];
scambiare e gestire i dati in questo modo con AJAX è molto più semplice e meno dispendioso rispetto ad XML, sopratutto lato client è leggerissimo perché restituisce codice nativo di javascript, e non ha bisogno di conversioni.
Quando però creiamo un oggetto o un array in PHP dobbiamo convertirlo in sintassi JSON. Per questo ci viene in aiuto una classe: JSON-PHP che permette di convertire array o oggetti in JSON e viceversa.

in pratica nello script PHP ci basta creare un oggetto o un array (chiamiamolo $obj) e utilizzando il metodo encode della classe json possiamo trasformarlo in JSON:

codice:
$json->encode($obj);
echo($obj);
in questo modo restituiamo a javascript l'oggetto codificato, che potremo valutare e usare:

codice:
eval("var obj = " + httpObj.responseText + ";");