...pensavo fosse la cosa più semplice ed invece mi sono infognato....
premetto che mi sto muovendo per le prime volte con ajax e forse
faccio qualche errore nella comprensione delle chiamate asincrone comunque sia
la mia idea era di avere la funzione script() attivata dall'inserimento di un valore in un campo testuale.questa scatena n Richieste che mi compilano altri div
mycodcli è il codice clienteche inserisco nella input
elementoid e il div dove il risultato della pagina ajax deve finire.
per funzionare funziona tutto, ma la prima chiamata a Richiesta() ogni tanto mi da come risultato "loading..." e non carica pù nulla...io credevo che usando XMLHTTP.readyState
lui continuasse a provare sino a che non sentisse un risultato invece pare che se trova
XMLHTTP.readyState == 1 non ci prova pìu....
altro particolare: facendo il debug quindi passo passo probabilmente ha più tempo e in "loading..." non arriva quasi mai....
ma secondo voi il problema è il tempo tra le due richieste? sugerrimenti errori palesi che compio....
javascript:void(0);
Confused
codice:
var XMLHTTP,mycodcli,myresponsabile,mymail;
function script() {
mycodcli=document.getElementById("Cliente").value;
Richiesta(mycodcli,"Mail","CN.CLI")
Richiesta(mycodcli,"Responsabile","CN.COL")
var e2 = document.getElementById("MailResponsabile");
}
function Richiesta(Stringa,elementoid,TipoParametro)
{
if (Stringa.length > 0)
{
//alert(TipoParametro);
var url = "ajax.asp?nome=" + Stringa.toUpperCase() + "&tipoparametro=" + TipoParametro.toUpperCase();
XMLHTTP = RicavaBrowser(function() {CambioStato(elementoid,TipoParametro)});
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
else
{
document.getElementById(elementoid).innerHTML = "";
}
}
function CambioStato(elemento,TipoParametro)
{
if (XMLHTTP.readyState == 1)
{
var R = document.getElementById(elemento);
R.innerHTML='loading...';
}
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById(elemento);
R.innerHTML=TipoParametro+XMLHTTP.responseText ;
}
}
function RicavaBrowser(QualeBrowser)
{
if (navigator.userAgent.indexOf("MSIE") != (-1))
{
var Classe = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
{
Classe = "Microsoft.XMLHTTP";
}
try
{
OggettoXMLHTTP = new ActiveXObject(Classe);
OggettoXMLHTTP.onreadystatechange = QualeBrowser;
return OggettoXMLHTTP;
}
catch(e)
{
alert("Errore: l'ActiveX non verrà eseguito!");
}
}
else if (navigator.userAgent.indexOf("Mozilla") != (-1))
{
OggettoXMLHTTP = new XMLHttpRequest();
OggettoXMLHTTP.onload = QualeBrowser;
OggettoXMLHTTP.onerror = QualeBrowser;
return OggettoXMLHTTP;
}
else
{
alert("L'esempio non funziona con altri browser!");
}
}