Originariamente inviato da andrea.paiola
la differenza con AJAX (ma quante volte lo devo dire?) è che AHAH NON usa XML... con diversi vantaggi che non sto a ripetere...

ma perchè avete aperto una discussione nuova?

vabbè comunque potete provare la versione modificata da Daniele Florio (e anche un poco da me)
http://www.gizax.it/vtre/tutorial.ph...re=3&lingua=IT
Te lo dico io quale è la differenza tra AJAX e AhAh.

Tutto parte dalla creazione di un oggetto per richiesta web, che, naturalmente, è diverso a seconda del browser

una volta creato l'oggetto req, si apre la connessione HTTP col metodo open mandando i giusti parametri

Si manda pure il puntatore di una funzione di CallBack (ossia, onreadystatechange deve puntare ad una funzione dell'utente)


nella funzione di CallBack dell'utente, si recupera:

o objHTTP.responseText

oppure
objHTTP.responseXML


cioè, a seconda delle circostanze, mi faccio restituire, o un testo semplice, o un testo con tag html, o un testo xml

AhAh dice:
non uso xml, non uso testo semplice, ma uso solo testo con tag html

cioè non faccio mai per esempio, document.getElementById("textarea1").value = objHTTP.responseText;

ma utilizzo SEMPRE document.getElementById("xxxx").innerHTML = objHTTP.responseText


Ebbene, a volte questo non va bene. Se per esempio faccio una richista di tre informazioni, io le restituisco così:

"informazione1|informazione2|informazione3"

separo i tre campi e li metto nel posto giusto con, per esempio: elemeento.value = campo1***


nel caso di AhAh è facile farsi due funzioncine parametrizzate, ma anche senza AhAh è oltremodo facile farsi due funzioncine parametrizzate che accettano pure la funzione di ritorno

=================

Per kluster

Mi piace la tua soluzione. Io ho tentato così:
codice:
		if(req.status == 200) 
		{
			output = req.responseText;
			document.getElementById(id_target).innerHTML = output;
			var j = document.createElement("div");
			j.innerHTML = "_" + output + "_";
			execJS(j);

		}
acrocchio per IE (Con Firefox funziona anche senza )

Per l'altro problema, le due funzioni ahah utilizzano l'oggetto richiesta http req in modo globale, perciò, se si fanno due richieste http in successione e la prima non ha avuto risposta, la seconda richiesta sovrascrive la prima, e si utilizzerà perciò solo l'ultima richiesta.

C'è modo di risolvere, naturalmente, ma questo alla prossima puntata