Ciao, ho il classico doppio menu a tendina provincie - comuni che tramite ajax popola la select dei comuni in funzione alla selezioni della prima select.
Funziona con Firefox ma non ne vuole sapere di funzionare con IE7, vi posto il codice magari sapete indicarmi dove ho toppato.
Grazie 1000![]()
PAGINA ajax.js
PAGINA index.phpcodice:function assegnaXMLHttpRequest() { var XHR = null; var browserUtente = navigator.userAgent.toUpperCase(); if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object"){ XHR = new XMLHttpRequest(); }else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) { if(browserUtente.indexOf("MSIE 5") < 0){ XHR = new ActiveXObject("Msxml2.XMLHTTP"); }else{ XHR = new ActiveXObject("Microsoft.XMLHTTP"); } } return XHR; } function prendiElementoDaId(id_elemento) { var elemento; if(document.getElementById){ elemento = document.getElementById(id_elemento); }else{ elemento = document.all[id_elemento]; } return elemento; } var readyState = { INATTIVO: 0, INIZIALIZZATO: 1, RICHIESTA: 2, RISPOSTA: 3, COMPLETATO: 4 }; var statusText = new Array(); statusText[100] = "Continue"; statusText[101] = "Switching Protocols"; statusText[200] = "OK"; statusText[201] = "Created"; statusText[202] = "Accepted"; statusText[203] = "Non-Authoritative Information"; statusText[204] = "No Content"; statusText[205] = "Reset Content"; statusText[206] = "Partial Content"; statusText[300] = "Multiple Choices"; statusText[301] = "Moved Permanently"; statusText[302] = "Found"; statusText[303] = "See Other"; statusText[304] = "Not Modified"; statusText[305] = "Use Proxy"; statusText[306] = "(unused, but reserved)"; statusText[307] = "Temporary Redirect"; statusText[400] = "Bad Request"; statusText[401] = "Unauthorized"; statusText[402] = "Payment Required"; statusText[403] = "Forbidden"; statusText[404] = "Not Found"; statusText[405] = "Method Not Allowed"; statusText[406] = "Not Acceptable"; statusText[407] = "Proxy Authentication Required"; statusText[408] = "Request Timeout"; statusText[409] = "Conflict"; statusText[410] = "Gone"; statusText[411] = "Length Required"; statusText[412] = "Precondition Failed"; statusText[413] = "Request Entity Too Large"; statusText[414] = "Request-URI Too Long"; statusText[415] = "Unsupported Media Type"; statusText[416] = "Requested Range Not Satisfiable"; statusText[417] = "Expectation Failed"; statusText[500] = "Internal Server Error"; statusText[501] = "Not Implemented"; statusText[502] = "Bad Gateway"; statusText[503] = "Service Unavailable"; statusText[504] = "Gateway Timeout"; statusText[505] = "HTTP Version Not Supported"; statusText[509] = "Bandwidth Limit Exceeded";
PAGINA getcomune.phpcodice:<script type="text/javascript" src="ajax.js"></script> <script language="javascript"> function caricacomune(divda, provi){ var ajax = assegnaXMLHttpRequest(); var elemento = prendiElementoDaId(divda); var usaLink = true; var dataChiamata = new Date(); var inizioChiamata = dataChiamata.getTime(); var opacity = 0.2; if(ajax) { usaLink = false; ajax.open("POST", "getcomune.php", true); ajax.setRequestHeader("connection", "close"); ajax.onreadystatechange = function() { if(ajax.readyState === readyState.COMPLETATO) { if(statusText[ajax.status] === "OK"){ try {elemento.style.display = "block";} catch(e) {} elemento.innerHTML = ajax.responseText; }else{ elemento.innerHTML = "Impossibile effettuare l'operazione richiesta. "; elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status]; } }else{ try {elemento.style.display = "none";} catch(e) {} } } ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded"); ajax.send("prov="+provi); } return usaLink; } //--> </script> <select name="provin" onchange="caricacomune('comu',this.value);"> <option value="">-- seleziona la provincia --</option> <? $result = mysql_db_query ("$database","SELECT * FROM L_provincie WHERE 1 ORDER BY PROVINCIA"); while ($valori = mysql_fetch_array ($result)){ $provi=$valori["PROVINCIA"]; $idprov=$valori["ID"]; ?> <option value="<?=$idprov?>"<?if($provin==$idprov){?> selected="selected"<?}?>><?=$provi?></option> <?}?> </select>
codice:<option value="">-- seleziona il comune --</option> <? $result = mysql_db_query ("$database","SELECT * FROM L_comuni WHERE IDPROV='$_POST[prov]' ORDER BY COMUNE"); while ($valori = mysql_fetch_array ($result)){ $com=ucwords(strtolower($valori["COMUNE"])); $idcom=$valori["ID"]; ?> <option value="<?=$idcom?>"><?=$com?></option> <? } ?>

Rispondi quotando