83 messaggi dal 23 agosto 2005
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.
83 messaggi dal 23 agosto 2005
Ciao.
Non capisco come possa essermi utile il link che mi hai passato.

Più o meno ho implementato anche io come nell'esempio il codice javascript.
Dico più o meno perchè per esempio io utilizzo il comando DOM:

ID = document.getElementById(SelectNameID).value; //memorizzo l'id passato

che come scritto nel W3C deve essere implementato così.
Nell'esempio che mi suggerisci si utilizzano dei valori statici mentre io li ho dinamici (eseguo una query su un database).

C'è qualcosa a livello di sintassi che IE7 non riesce a gestire... sei d'accordo con me?

Grazie,
Luigi.
igio80 ha scritto:
Non capisco come possa essermi utile il link che mi hai passato.


Dato che fa esattamente quello che serve a te e che funziona su tutti i browser poteva esserti utile, no?

Ma il problema ce l'hai nel recuperare il valore selezionato o nel modificare la collection degli option?
Modificato da m.casati il 15 gennaio 2007 14.22 -

Matteo Casati
GURU4.net
83 messaggi dal 23 agosto 2005
Ti ringrazio per questo infatti, però purtroppo l'esempio che mi hai passato non lo riesco tanto a mappare sul mio codice.
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();
}
else if(window.ActiveXObject)
{
objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
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...
2 messaggi dal 15 maggio 2001
www.vdiana.com
Ciao,
non sono sicuro ma IE7, a differenza delle altre versioni di IE, supporta l'oggetto XMLHTTP in maniera nativa e non tramite ActiveX. Nel tuo codice instanzi l'oggeto appunto con ActiveX:
objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
Vedi http://www.microsoft.com/italy/windows/ie/ie7/about/features/default.mspx
Secondo me, ma non ho provato, potrebbe funzionare utilizzando solo il costruttore new:

objXmlHttp = new XMLHttpRequest();

Non ti resta che provare.
Buon lavoro.
83 messaggi dal 23 agosto 2005
Purtroppo continua a non funzionare...
83 messaggi dal 23 agosto 2005
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ò.... :-(

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.