Per costruire un menù a tendina con provincie e comuni italiani, ho trovato questo codice online. Funziona tutto bene eccetto per un problema di compatibilità Firefox - Explorer (strano, eh? :P ).
Il problema non è nella "auto compilazione" dei menù, quello funziona bene in entrambi i browser, ma nel passaggio di dati via post. In Explorer, dopo il submit, ritrovo il comune selezionato (nella variabile $_POST['comune']), mentre su Firefox questa variabile rimane vuota.
Ho anche controllato la "Console degli errori" di Firefox, per eventuali errori js, ma non mi segnala niente.
Questo è il codice, vi sarei grato se qualcuno potesse aiutarmi.
Grazie!codice:function caricaComuni(){ // Il select della provincia var prov = document.loc.provincia; // L’id dell’opzione selezionata var idOpt = prov.options.selectedIndex; //Il valore della provincia selezionata, in questo esempio si tratta dell’id della provincia nel database var provinciaScelta = prov.options[idOpt].value; // Chiamo la funzione che andrà a richiedere la lista dei comuni allo script in php e la inserirà all’interno del tag span // ?id=” +provinciaScelta è il parametro inviato allo script php, ovvero l’id della provincia scelta ajaxupdatediv( "stampaComuni.php?c=" +provinciaScelta, "listaComuni"); } // La funzione ajaxupdatediv tiene presente delle differenze tra IE e gli altri browsers function ajaxupdatediv(url, containerid){ var element = document.getElementById(containerid); var pagina = false; // richiesta per Mozilla, Safari etc if (window.XMLHttpRequest){ pagina = new XMLHttpRequest(); } else if (window.ActiveXObject){ // richiesta per IE try { pagina = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ try{ pagina = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false; pagina.onreadystatechange=function(){ loadpage(pagina, containerid, element); } pagina.open('GET', url, true); pagina.send(null); } function loadpage(pagina, containerid, element){ if (pagina.readyState == 4 && (pagina.status==200 || window.location.href.indexOf("http")==-1)) document.getElementById(containerid).innerHTML = pagina.responseText; }

Rispondi quotando