Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    mostrare una riga solo se scelgo 2 campi da una select

    Ciao a tutti
    vorrei fare in modo che una riga venga mostrata solo se scelgo 2 opzioni in particolari da un menu select
    Esempio: se dal menu select scelgo "volo+hotel" mi deve comparire una riga sotto dove ho un'altra select con la scelta degli aeroporti, se scelgo "solo hotel" non deve comparire niente, se scelgo "bus+hotel" deve comparire un'altra select con la scelta della città dove poter prendere il bus.

    Come posso fare?

    I test li sto facendo su questa pagina, cosi' capite meglio cosa mi puo' servire:
    http://bit.ly/1EXPIEW

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Si definiscono select incatenate (esempio più classico regioni > provincia > comuni) la soluzione più semplice e mette le "seconde" select nascoste (con display:none) e in base a cosa selezioni nel menù principale mostri la select collegata, potresti anche popolare la seconda select in base alla prima ma l'operazione è molto più complessa
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Sarà qualcosa del genere:

    codice:
    var option = opt.options[opt.selectedIndex].value;
    	if(option=='2'){
    		document.getElementById('aeroporti').style.display='block';
    		}
    		else if(option=='3'){
    		document.getElementById('bus').style.display='block';
    		}else{
    document.getElementById('aeroporti').style.display='none';
    		document.getElementById('bus').style.display='none';
    		}

  4. #4
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Qualche esempio già bello e fatto da poter implementare esiste?
    Sto usando questo codice ma ho problemi perche' o mi fa vedere una sola select oppure non mi apre le città

    codice:
    function setCities(chooser) {
        var newElem;
        var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
        var cityChooser = chooser.form.elements["città"];
        while (cityChooser.options.length) {
            cityChooser.remove(0);
        
        }
        var choice = chooser.options[chooser.selectedIndex].value;
        var db = mezzo[choice];
        newElem = document.createElement("option");
        newElem.text = "Seleziona la città:";
        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>
    
    <script>
    
    function MostraRiga(opt){
        var option = opt.options[opt.selectedIndex].value
            if(option=='3'){
            document.getElementById('invisibile').style.display='block'
            }else{
            document.getElementById('invisibile').style.display='none'
            }    
    }
    
    </script>

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Soluzione base:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>mostrare una riga solo se scelgo 2 campi da una select</title>
    <script type="text/javascript">
    function showNode (sID) {
        showNode.active && showNode.active.style.setProperty("display", "none");
        showNode.active = document.getElementById(sID);
        showNode.active && showNode.active.style.removeProperty("display");
    }
    </script>
    </head>
    
    <body>
    
    <p>
        Select principale:
        <select onchange="showNode(this.value);">
            <option value="altro1">Altro #1</option>
            <option value="volo_hotel">volo+hotel</option>
            <option value="altro2">Altro #2</option>
            <option value="bus_hotel">bus+hotel</option>
            <option value="altro3">Altro #3</option>
        </select>
    </p>
    
    <p id="volo_hotel" style="display: none;">
        Dove:
        <select name="citta">
            <option>Roma</option>
            <option>Milano</option>
            <option>Napoli</option>
        </select>
    </p>
    
    <p id="bus_hotel" style="display: none;">
        Aeroporto:
        <select name="aeroporto">
            <option>Aeroporto #1</option>
            <option>Aeroporto #2</option>
            <option>Aeroporto #3</option>
        </select>
    </p>
    </body>
    </html>
    Ultima modifica di carlomarx; 15-10-2014 a 17:04
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    le devi mostrare o creare?

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    con l'esempio di carlomarx sono riuscito a fare ciò che volevo
    L'unica cosa che manca è che non riesco a far comparire subito sotto a "tipo di pacchetto" la scritta "scegli aeroporto" oppure "scegli città di partenza".
    Per il resto è perfetto
    Grazie per ora!

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Rieccomi
    sto utilizzando la soluzione di carlomarx e mi trovo abbastanza bene nella scelta delle opzioni.
    L'unico problema e' che quando invio il modulo alla pagina di ricerca, vorrei fare in modo da trovare nella stessa pagina i campi già precompilati per una successiva ricerca ma noto che il campo "scegli città" scompare e per farlo riapparire devo cliccare prima su un'altra voce e poi di nuovo su bus + hotel.
    Lo stesso succede per volo + hotel.

    C'e' qualche errore? potrei risolvere in qualche modo?

    Potete vedere l'esempio qui, fate una ricerca di 7 giorni tipo dal 1 febbraio con bus + hotel da qualsiasi città, una volta finiti nella pagina della ricerca sulla sinistra avrete di nuovo il modulo ma non comprare la città scelta ed è un bug perche' l'utente deve fare 2 azioni prima di poter scegliere la città nuovamente

    http://bit.ly/1EXPIEW

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.