Buongiorno a tutti, ho preso spunto dal seguente link l'esempio per creare un form con la scelta della provincia citta e cap... funziona perfettamente, pero solo con firefox e explorer,
con gli altri browser non funziona, secondo me perche nella pagina italia.js ce il seguente codice
codice:
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!");
}
}
qlcn può aiutarmi???
vi posto la pagina principale form.asp dove cè la scelta della provincia
codice:
<%@LANGUAGE = VBScript%>
<html>
<head>
<title>Selezione di Regioni e Province con ASP ed AJAX</title>
<script type="text/javascript" src="italia.js"></script>
</head>
<body>
<form name="italia">
<select name="prov" onChange="citta(this.value)">
<%
percorso="Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("public/mdb-database/db.mdb") & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(percorso)
Set objRs = Server.CreateObject("ADODB.Recordset")
query="SELECT DISTINCT CITTA.prov FROM CITTA ORDER BY CITTA.prov;"
set objRs = objConn.Execute(query)
If objRs.EOF Then
Response.Write "Selezionare una regione valida!"
else
%>
<option value="0"></option>
<%
While objRs.EOF = False
%>
<option value="<%=objRs("prov")%>"><%=objRs("prov")%></option>
<%
objRs.MoveNext
Wend
%>
</select>
<%
end if
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
%>
<div id="risultati1"></div>
<div id="risultati2"></div>
</form>
</body>
</html>
questa è la pagina italia.js dove ce il codice java
codice:
var XMLHTTP;
function citta(ID)
{
if (parseInt(ID) == 0)
{
document.getElementById("risultati1").innerHTML = "";
}
else
{
var url = "citta.asp?id=" + ID;
XMLHTTP = RicavaBrowser(CambioStato1);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
}
function cap(ID)
{
if (parseInt(ID) == 0)
{
document.getElementById("risultati2").innerHTML = "";
}
else
{
var url = "cap.asp?id=" + ID;
XMLHTTP = RicavaBrowser(CambioStato2);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
}
function CambioStato1()
{
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById("risultati1");
R.innerHTML = XMLHTTP.responseText;
}
}
function CambioStato2()
{
if (XMLHTTP.readyState == 4)
{
var E = document.getElementById("risultati2");
E.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!");
}
}
la pagina citta.asp che seleziona le citta della provincia scelta
codice:
var XMLHTTP;
function citta(ID)
{
if (parseInt(ID) == 0)
{
document.getElementById("risultati1").innerHTML = "";
}
else
{
var url = "citta.asp?id=" + ID;
XMLHTTP = RicavaBrowser(CambioStato1);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
}
function cap(ID)
{
if (parseInt(ID) == 0)
{
document.getElementById("risultati2").innerHTML = "";
}
else
{
var url = "cap.asp?id=" + ID;
XMLHTTP = RicavaBrowser(CambioStato2);
XMLHTTP.open("GET", url, true);
XMLHTTP.send(null);
}
}
function CambioStato1()
{
if (XMLHTTP.readyState == 4)
{
var R = document.getElementById("risultati1");
R.innerHTML = XMLHTTP.responseText;
}
}
function CambioStato2()
{
if (XMLHTTP.readyState == 4)
{
var E = document.getElementById("risultati2");
E.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!");
}
}
e la pagina cap che trova il cap della citta selezionata
codice:
<%@LANGUAGE = VBScript%>
<%
Dim id
id = Request.QueryString("id")
percorso="Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("public/mdb-database/db.mdb") & ";"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(percorso)
Set objRs = Server.CreateObject("ADODB.Recordset")
query="SELECT CITTA.cap FROM CITTA WHERE citta='" & id & "'"
set objRs = objConn.Execute(query)
If objRs.EOF Then
Response.Write "Selezionare una regione valida!"
else
%>
<%
While objRs.EOF = False
%>
<input type="text" name="cap" value="<%=objRs("cap")%>" >
<%
objRs.MoveNext
Wend
end if
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
%>
Grazie!