Ciao a tutti sto usando uno script ajax su una pagina asp e mi si verifica un problema.
Cerco di spiegarvi... la funzione che viene chiamata dalla pagina asp si chiama getComboA questa funzione che ha due parametri in input poi ne chiama un'altra e questa un'altra ancora e così via.
Il mio problema è che uno di questi parametri che vengono passati dalla pagina asp me lo devo portare dietro fino all'ultima funzione e nell'ultimo passaggio di valore credo ci sia un errore.
Questo è lo script, come vedete ho messo degli alert (commentati) e sono tutti corretti infatti il valore in quegli alert c'è... il problema credo sia dentro la funzione CambioStato, dove l'alert mi fa vedere che il parametro è passato corretto, ma poi la risposta XMLHTTP.readyState non è 4 e quindi non entro dentro quel IF.
La risposta di XMLHTTP.readyState è data dalla funziona RicavaBrowser e credo che sia li che io devo fare delle modifiche ma non riesco a capire dove.
Ho fatto un test richiamando le due funzioni senza passaggio di parametro come vedete nello script sotto e facendo così la risposta del XMLHTTP.readyState è 4 e quindi corretta, ma a me serve quel parametro... cosa devo modificare?codice:function getComboA(idsel, prod) { var valore = document.getElementById(idsel).value; //alert("cambio colore " + valore + " " + prod); Richiesta(valore, prod); } var XMLHTTP; function Richiesta(valore, prod) { var url = "/include/change-color.asp?color=" + valore + "&product=" + prod; //alert("cambio colore2 " + valore + " " + prod); XMLHTTP = RicavaBrowser(CambioStato(prod)); XMLHTTP.open("GET", url, true); XMLHTTP.send(null); } function CambioStato(prod) { //alert("cambio colore3 " + prod); if (XMLHTTP.readyState == 4) { var R = document.getElementById(prod); R.innerHTML = 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!"); } }
Grazie a tutti per l'aiuto e spero di essere stato chiaro...codice:function getComboA(idsel, prod) { var valore = document.getElementById(idsel).value; //alert("cambio colore " + valore + " " + prod); Richiesta(valore, prod); } var XMLHTTP; function Richiesta(valore, prod) { var url = "/include/change-color.asp?color=" + valore + "&product=" + prod; //alert("cambio colore2 " + valore + " " + prod); XMLHTTP = RicavaBrowser(CambioStato); XMLHTTP.open("GET", url, true); XMLHTTP.send(null); } function CambioStato() { if (XMLHTTP.readyState == 4) { var R = document.getElementById("prod-1"); R.innerHTML = 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!"); } }

Rispondi quotando