questa è un esempio che ho; adattala al tuo scopo
codice:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Pagina senza titolo</title> <link href="../../stili/Styles.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> function ListBox_regioni_onchange_get(v) { /*----------------------------------------------------------------------- Qui faccio alcune operazioni prima di richiamare ajax. Per esempio, disabilito la lista regioni, o rendo visibile una immagine per indicare ajax al lavoro ------------------------------------------------------------------------*/ //disabilito la lista regioni v.disabled = true; //creo l'oggetto che fa la richiesta http var objHTTP = null; if(window.XMLHttpRequest) { // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7 objHTTP = new XMLHttpRequest(); } else if(window.ActiveXObject) { try { // Internet Explorer 6 objHTTP = new ActiveXObject("MSXML2.XMLHTTP"); } catch(e) { // Internet Explorer 4,5 objHTTP = new ActiveXObject("Microsoft.XMLHTTP"); } } else { alert("Non è possibile creare l'oggetto che fa la richiesta http"); return; } //lista parametri da mandare via post nel formato //variabile1=valore1&variabile2=valore2... var parametri = "codice_istat_regione=" + encodeURIComponent(v.value); //parametri = parametri.replace(/\+/g, "%2B"); /*------------------------------------------------------------------------- La risorsa da richiedere è la pagina server che svolge i compiti richiesti. Se è la medesima, si può usare ?. Può naturalmente essere seguita da parametri. In questo caso spedisco il parametro ajax_comando per dire alla pagina cosa fare --------------------------------------------------------------------------*/ var url = "ajax_in_action/regioni_provincie.aspx?ajax_comando=provincie"; //apertura connessione HTTP //1° parametro, GET, POST, HEAD //2° parametro, risorsa da richiedere: ? per richiamare la pagina medesima //3° parametro, asincrona=true, sincrona=false objHTTP.open("POST", url, true); objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); objHTTP.setRequestHeader('Content-length',parametri.length); //objHTTP.setRequestHeader('Connection', 'close'); //objHTTP.setRequestHeader("connection", "keep alive");//questo è predefinito /*-------------------------------------------------------------------------------- //impostazione della funzione di callback: in questo caso, la funzione è in linea. //ma è possibile indicare il NOME della funzione. Per esempio: //objHTTP.onreadystatechange = mia_funzione; //nota: senza parentesi finali // e altrove, per esempio più sotto, definire la funzione: //function mia_funzione(){...} ---------------------------------------------------------------------------------*/ objHTTP.onreadystatechange = function() { if (objHTTP.readyState == 4) { if (objHTTP.status != 200) { /*-------------------------------------------------------------------- Qui sono in errore, e faccio le opportune operazioni, per esempio, riabilito i pulsanti disabilitati, messaggio di errore, etc... ---------------------------------------------------------------------*/ v.disabled = false; alert("ERRORE NELLA TRASMISSIONE DATI!" + "\n\nreadyState:" + objHTTP.readyState + "\nstatus: " + objHTTP.status + "\nstatusText: " + objHTTP.statusText + "\n\nheaders:\n" + objHTTP.getAllResponseHeaders() ); return; } /*-------------------------------------------------------------------- Qui ho ottenuto i dati dal server o sotto forma di testo o html, con objHTTP.responseText o sotto forma di xml, con objHTTP.responseXML ---------------------------------------------------------------------*/ var t = objHTTP.responseText; //var tx = objHTTP.responseXML; //creo la lista provincie document.getElementById("div2").innerHTML = "Scegli la provincia: " + t; //riabilito la lista regioni v.disabled = false; } }; //invio della richiesta, per GET e HEAD è null objHTTP.send(parametri); } </script> </head> <body> <form id="form1" action="?"> <div id="div1" style="float: left"> Scegli la regione: <select name="regioni" id="regioni" onchange="ListBox_regioni_onchange_get(this);" style="height: 333px; width: 208px;" multiple="multiple"> <option value="13">ABRUZZO</option> <option value="17">BASILICATA</option> <option value="18">CALABRIA</option> <option value="15">CAMPANIA</option> <option value="08">EMILIA-ROMAGNA</option> <option value="06">FRIULI-VENEZIA GIULIA</option> <option value="12">LAZIO</option> <option value="07">LIGURIA</option> <option value="03">LOMBARDIA</option> <option value="11">MARCHE</option> <option value="14">MOLISE</option> <option value="01">PIEMONTE</option> <option value="16">PUGLIA</option> <option value="20">SARDEGNA</option> <option value="19">SICILIA</option> <option value="09">TOSCANA</option> <option value="04">TRENTINO-ALTO ADIGE</option> <option value="10">UMBRIA</option> <option value="02">VALLE D'AOSTA</option> <option value="05">VENETO</option> </select> </div> <div id="div2"> Scegli la provincia: </div> </form> </body> </html>

Rispondi quotando