Visualizzazione dei risultati da 1 a 5 su 5

Discussione: script che non va

  1. #1

    script che non va

    Salve, qualcuno sa spiegarmi perchè su mozilla questo script non va?

    Questo è lo script dentro ad head:

    <script language="JavaScript" type="text/JavaScript">
    var prov = new Array();
    prov[0] = ["aaa","bbb","ccc"];
    prov[1] = ["ddd","eee","fff"];
    prov[2] = ["ggg","hhh","iii"];

    function agg() {
    x=document.destinazione.provincia.selectedIndex;
    while(document.destinazione.comune.selectedIndex>-1){
    document.destinazione.comune.options[0]=null
    }
    for(i=0;i<prov[x].length;i++){
    tmp=new Option();
    tmp.text=prov[x][i];
    document.destinazione.comune.options.add(tmp);
    }
    }
    </script>


    Questo è il form dentro body:

    <form name="destinazione" method="post" action="">
    <select name="provincia" onChange="agg()">
    <option value="111">111</option>
    <option value="222">222</option>
    <option value="333">333</option>
    </select>
    <select name="comune">
    </select>
    <select name="cap">
    </select>
    </form>

    Grazie
    Qualcuno mi ha cambiato le impostazioni e io...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Stando a [url=http://www.devguru.com/technologies/ecmascript/quickref/select_options.html[devGuru[/url] per creare opzioni si usa una sintassi leggermente diversa (non si parla del metodo add() ).

    Non so se e` quello il problema.

    Quindi dovresti usare:
    var opt = document.destinazione.comune.options;
    for(i=0;i<prov.length;i++){ // attenzione: c'era una quadra di tropo
    opt[opt.length] = new Option(prov[i]);
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    ok funziona... il fatto della quadra comunque è dovuto all'array multidimensionale.

    grazie mille.

    Adesso avrei un'altro problemino da risolvere.
    Lo script che ho qui inserito naturalmente dovrebbe servire a inserire dentro la select comune tutti i comuni di una provincia precedentemente selezionata.

    Adesso non so se avete presente, ma i comuni sono 14.000 circa e lo script che genero è il risultato di uno script fatto in php.

    Per intenderci... l'array multidimensionale prov viene creato automaticamente. Fin qui non c'è nessunissimo problema... tranne per un piccolo particolare... La pagina alla fine pesa 200KB. Non è che ci sia un modo per risolvere sta cosa?

    Spero di essermi fatto capire... grazie ancora.
    Qualcuno mi ha cambiato le impostazioni e io...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La quadra di prima: controllavi la lunghezza dei vettori interni, non del vettore principale della matrice: capitava per caso che fossero uguali, per cui funzionava, ma e` un errore logico.

    Non puoi passare il database di migliaia di comuni:
    devi risolvere lato server.

    Per scaricare tutti comuni di una particolare provincia senza ricaricare tutta la pagina, puoi usare una popup, oppure un frame nascosto.
    Quindi il vettore non lo scarichi subito, ma in un secondo tempo (quando l'utente ha scelto la prov).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ... proprio per caso no... (mi riferivo ai vettori interni ovviamente), a lato server mi costruisco gli array con un ordine preciso perciò la scelta provincia->insieme di comuni è sempre esatta. Effettivamente c'avevo pensato a sta cosa ma non mi era venuto in mente niente di meglio... mah.

    Per quanto invece riguarda la pesantezza della pagina effettivamente l'idea del frame nascosto non mi sembra male, ci lavorerò su.

    Grazie ancora.
    Qualcuno mi ha cambiato le impostazioni e io...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.