Ciao a tutti, chiedo un aiuto per meglio capire il funzionamento del codice sottostante...
Dovrei realizzare due menu a tendina concatenati (il secondo mostra dati in funzione del primo) e fino qui ci sono arrivato modificando script trovati in rete... Mi piacerebbe però capire un po' meglio "perchè funziona"!
Qualcuno può commentare un po' il codice?!
Grazie mille!
codice HTML:<html> <head> <script type="text/javascript"> /* VIENE CREATO UNA NUOVA VARIABILE (O DUE?) DI TIPO ARRAY, NOME REGIONDB, CHE IN FUNZIONE DEL PARAMETRO PASSATO (AU - AE) CONTIENE DEI VALORI. MA A CHE SERVE "VALUE:"102" ECC...? SONO ATTRIBUITI A CASO? */ var regiondb = new Object() regiondb["au"] = [{value:"102", text:"Autostrada urbana (A-urb)"}, {value:"88", text:"Urbana di scorrimento (D)"}, {value:"80", text:"Urbana di quartiere (E)"}, {value:"55", text:"Locale urbana (F-urb)"}]; regiondb["ae"] = [{value:"30", text:"Extraurbana principale (B)"}, {value:"21", text:"Extraurbana secondaria (C)"}, {value:"49", text:"Locale extraurbana (F-ex)"}]; /* QUESTA DOVREBBE ESSERE LA PRIMA FUNZIONE INVOCATA DAL PRIMO SELECT; TRAMITE "CHOOSER" RICEVE L'ARGOMENTO PASSATO DAL "THIS" */ function setambito(chooser) { var newElem; /* SI CREA VARIABILE NEWELEM */ /* SI CREA VARIABILE WHERE CHE VALE - 1 SE SI STA NAVIGANDO CON I.E., OPPURE NULL SE SI UTILIZZA UN ALTRO BROWSER. MA CHE SIGNIFICA IL "?" ? */ var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null; /* SI CREA UNA VARIABILE CITYCHOOSER MA CHE CONTIENE???? */ var cityChooser = chooser.form.elements["tipostrada"]; /* QUI CHE SUCCEDE???? */ while (cityChooser.options.length) { cityChooser.remove(0); } var choice = chooser.options[chooser.selectedIndex].value; /* SI CREA UNA VARIABILE DB E GLI INSERISCO L'ARRAY REGIONDB CORRISPONDENTE ALLA SCELTA FATTA NEL 1 SELECT CHE GLI VIENE PASSATO CON L'OPERATORE CHOICE */ var db = regiondb[choice]; /* QUI CHE SUCCEDE???? */ newElem = document.createElement("option"); newElem.text = "Seleziona un tipo di strada"; newElem.value = ""; cityChooser.add(newElem, where); if (choice != "") { for (var i = 0; i < db.length; i++) { newElem = document.createElement("option"); newElem.text = db[i].text; newElem.value = db[i].value; cityChooser.add(newElem, where); } }} </script> /* QUI C'E' IL CODICE HTML CHE MOSTRA IL PRIMO SELECT, CHIAMA UNA FUNZIONE E RICHIAMA UNA PAGINA PHP ESTERNA */ </head> <body > <br /><br /> <form name="form" method="post" action="amm.php"> Ambito svolgimento strada principale: /* ALL'EVENTO ONCHANGE VIENE RICHIAMATA LA FUNZIONA JS "SETAMBITO" PASSANDOGLI IL VALORE SELEZIONATO TRAMITE "THIS" */ <select name="ambito" onchange="setambito(this)"> <option value="" selected="selected">Seleziona</option> <option value="au">Urbana</option> <option value="ae">Extra urbana</option> </select> /* QUI NON CAPISCO COME IL SELECT "TIPOSTRADA" SI POPOLI CON I VALORI, CHI GLIELI PASSA??? */ <select name="tipostrada"> <option value="" selected="selected">Seleziona</option> </select> /* CLICCANDO IL BOTTONE SI RICHIAMA LA PAG. PHP E GLI SI PASSANO I VALORI */ <input type="submit" value="Prosegui" /> </form> </div> </body> </html>

Rispondi quotando

