Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473

    Select dinamiche compatibili su tutti i browser

    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!

  2. #2
    beh, nel primo script fai il controllo per determinare se è IE o Firefox, altrimenti non fa nulla...

    prova a cambiarlo così:

    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 
        {
            OggettoXMLHTTP = new XMLHttpRequest();
            OggettoXMLHTTP.onload = QualeBrowser;
            OggettoXMLHTTP.onerror = QualeBrowser;
            return OggettoXMLHTTP;
        }
    }
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    ciao, perfetto cosi funziona!!!

    Grazie...


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.