Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    34

    Problemi ad implementare AJAX con IE7

    Salve a tutti.
    Ho un problema con IE7.

    Ho implementato una pagina .asp che tramite tecnologia AJAX mi crea una serie di select nidificate (il classico esempio delle Regioni-Province --> scelgo dalla prima select una regione d'Italia e popolo dinamicamente la seconda select con le province corrispondenti).

    Tutto questo funziona perfettamente con FireFox.
    Mi sono accorto poi che su Internet Explorer 7 invece non funziona per niente (?).

    Io ho implementato una pagina .asp che richiama un file .js (dove tramite AJAX popolo le mie select) utilizzando come webserver IIS.
    Utilizzo Windows XP come S.O.

    Su internet non ho trovato nulla che potesse aiutarmi a capire questo strano problema.

    Dalla mia umile esperienza direi che si tratta di qualche errore di sintassi a livello di javascript che IE7 non riesce a risolvere.
    Il fatto è che la mia pagina .js (utilizzo anche il DOM) l'ho strutturata basandomi sullo standard del W3C (http://www.w3schools.com/) ma potrei ovviamente aver dimenticato qualcosa.

    Suggerimenti?
    Grazie e buona giornata a tutti.

    Luigi.

  2. #2

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    perdonami, ma dici davvero tante cose tranne però quella che serve, cioè il codice che dà errore

    tirando ad indovinare, forse è la funzione che lancia ajx :master:

    in rete ho trovato questo:
    codice:
        function getXMLHttp() 
        {
    	    var xmlhttp = null;
        	
    	    if(window.XMLHttpRequest) 
    	    {
    		    xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
    	    } 
    	    else if(window.ActiveXObject) 
    	    {
    		    try
    		    {
    			    xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); // Internet Explorer 6 
    		    } 
    		    catch(e) 
    		    {
    			    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 4,5 
    		    }
    		    } 
    	    else 
    	    {
    		    xmlhttp = null;
    	    }
    	    return xmlhttp;
        };
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    34
    Vi ringrazio e scusate la "dimenticanza".
    La struttura della mia applicazione è questa:
    1) pagina default.asp che contiene le select dinamiche con valori prelevati da un database;
    2) nell'evento ONCHANGE di ogni select richiamo una funzione javascript che implementa la tecnologia AJAX: --> creo l'oggetto xmlHttpRequest
    ...
    xmlHttp = getXmlHttpObject())
    xmlHttp.onreadystatechange = stateChanged; //funzione da richiamare quando cambia lo stato dell'oggetto
    var url = "cerca.asp"; //mi restituirà le OPTION della select figlio
    xmlHttp.open("GET", url + "?idpadre=" + ID, true);
    xmlHttp.send(null);
    ...
    // funzione che ricava l'oggetto in base al browser dell'utente
    function getXmlHttpObject()
    {
    var objXmlHttp = null;
    if(window.XMLHttpRequest)
    {
    objXmlHttp = new XMLHttpRequest(); // code for Mozilla, etc.
    }
    else if(window.ActiveXObject)
    {
    objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE7 ?!?!?
    }
    return objXmlHttp;
    }
    ...
    // funzione da eseguire quando cambia lo stato dell'oggetto
    function stateChanged()
    {
    ...
    //visualizzo il risultato del file aperto con l'oggetto xmlHttp
    document.getElementById(SelectName).innerHTML = xmlHttp.responseText;
    ...
    }

    3) il file cerca.asp esegue una query sul database estrapolando tutti i record figli della select selezionata --> in pratica con una serie di Response.Write stampo le varie OPTION;

    Tutto qui...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    34
    Forse non è un problema di oggetti in quanto facendo la ResponseText del mio httpRequest i dati delle select li visualizzo... quindi deduco che l'oggetto venga creato correttamente sia su FireFox che su IE7....
    Nella mia funzione:

    // funzione che ricava l'oggetto in base al browser dell'utente
    function getXmlHttpObject()
    {
    var objXmlHttp = null;
    // code for Mozilla, etc.
    if(window.XMLHttpRequest)
    {
    alert('MOZILLA');
    objXmlHttp = new XMLHttpRequest()
    }
    // code for IE
    else if(window.ActiveXObject)
    {
    alert('IE');
    objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXmlHttp;
    }

    stampo sempre MOZILLA sia su fireFox che su IE7. Questo perchè (credo) entrambi i browser utilizzano l'oggetto XMLHttpRequest più standard e indipendente.

    Detto ciò, il problema continua a restare però.... :-(

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.