Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Aggiungere dinamicamente una select

    Salve ragazzi. Avrei bisogno di un aiutino.
    In pratica dato un elenco di valori (nel mio caso sono parametri di ordinamento) vorrei che tre select li contenessero. Fin qui, ovviamente nessuno problema.
    L'aiuto che mi serve riguarda la dinamicità delle selct. Infatti, per evitare che uno stesso parametro venga selezionato più di una volta, vorrei fare in modo che il valore selezionato nella select precedente venisse eliminato dalle opzioni della select successiva.

    Per chiarirci, mettiamo che io abbia un elenco di parametri:

    Nome
    Marca
    Materiale
    Tipo d'oggetto

    Questi parametri sono elencati in tutte e tre le select.
    Nella prima seleziono "Materiale". Io vorrei fare in modo che la select #2 contenga solo i restanti parametri (Nome, Marca, Tipo d'oggetto).

    E' possibile fare una cosa del genere?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    Ciao.
    Azzardo (e se ho capito il tuo problema)
    su onchange passi il valore della prima
    select all'array (spero )
    in cui hai i valori della seconda e fai
    passare quelli che non ci incastrano
    con una regEx.

    Mah guarda te


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    No, veramente di java script non ne capisco assolutamente niente. Programmo in PHP per hobby e quindi quando mi trovo a dover fare qualcosa in js per l'interfaccia mi fermo. Il ragionamento me lo sono fatto (anche se non in dettaglio perchè non so come operi js) però non sono in grado di tradurlo in codice!

    In realtà a me basterebbe creare un array con i vari parametri. Con questo array creo il primo select.
    Poi premendo un pulsante che si attiva solo se ho selezionato qualcosa appare la seconda select. Per riemipre la seconda select scorro nuovamente l'array. Nel ciclo for con un if controllo se quel particolare parametro è già stato selezionato e se lo è non stampo niente. Viceversa stampo il valore nella select e così via.

    Il problema è che tradotto in codice non so proprio come si faccia nè posso imparare js perchè cmq dovrei affrontare molti problemi che si risolvono solo con l'esperienza. Per uno che invece sa già programmare in js non dovrebbe essere molto difficile!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    E' molto grezzo come codice
    ma essendo di facile lettura
    può penso esserti utile a costruire
    quello che vuoi fare:
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    title>Untitled Document</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <
    script language="JavaScript" type="text/JavaScript">
    var 
    check false;
    function 
    createSelectmyarray )
    {
        var 
    myselect document.createElement("select");
        
    myselect.setAttribute("id""myselect");
        
    document.getElementById("frm").appendChild(myselect);
        var 
    myoption = new Array();
        for (
    i=0myarray.lengthi++)
        {
            
    myoption[i] = document.createElement("option");
            
    myoption[i].setAttribute("value"i);
            var 
    text document.createTextNode(myarray[i]);
            
    myoption[i].appendChild(text);
            
    document.getElementById("myselect").appendChild(myoption[i]);
        }
        
    start();
    }
    function 
    createSelect2(myarray)
    {
        if(
    test document.getElementById("myselect2")) 
        {
            
    document.getElementById("frm").removeChild(test);
        }
        var 
    sel document.getElementById("myselect");
        var 
    index sel.options[sel.selectedIndex].value;
        var 
    myselect2 document.createElement("select");
        
    myselect2.setAttribute("id""myselect2");
        
    document.getElementById("frm").appendChild(myselect2);
        for (
    i=0myarray[index].lengthi++)
        {
            
    document.getElementById("myselect2").options[i] = new Option(myarray[index][i],i);
            
        }
    }
    function 
    start()
    {
        var 
    myselect2 document.createElement("select");
        
    myselect2.setAttribute("id""myselect2");
        
    document.getElementById("frm").appendChild(myselect2);
        
    document.getElementById("myselect2").options[0] = new Option("------","0");
    }

    window.onload = function()
    {
        var 
    myarray = new Array("uno","due","tre");
        var 
    myarray2 = new Array();
        
    myarray2[0] = new Array("uno","due","tre");
        
    myarray2[1] = new Array("uno1","due1","tre1");
        
    myarray2[2] = new Array("uno2","due2","tre2");
        
    createSelect(myarray);
        
        var 
    sel document.getElementById("myselect");
        
    sel.onchange = function()
        {
            
    createSelect2(myarray2);
        }
    }
    </script>

    </head>

    <body>
    <form id="frm" action="" method="post" name="frm">
    </form>
    </body>
    </html> 

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Ottimo, ora me lo studio un po' e vedo che riesco a combinare. Grazie mille! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    se io volessi fare la stessa cosa ma al posto della prima combo avessi 3 immagini e volessi attivare il tutto dall'evento onclick?

  7. #7

  8. #8
    vabbe ho risolto da solo tempo fa, ma per i poveri cristi che cercassero qualcosa di simile


    <style>
    #creature{width:150;height:15;}
    </style>
    <script language="javascript" src="js/combo.js"></script>
    <p id="paraID">
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]


    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]
    [img]razza1.jpg[/img]

    </p>
    <select id="creature">
    </select>
    <hr>
    </body>
    </html>




    function makeForm(indicearray) {
    mypara=document.getElementById("paraID");
    myform=document.createElement("form");
    myselect=document.getElementById("creature");

    //se non vuoi crearla nell'html puoi crearla qui, decommentando le seguenti 2 righe
    //myselect = document.createElement("select");
    //myselect.setAttribute("id", "creature");
    myselect.options.length = 0;


    switch(indicearray)
    {
    case 1:
    var creature=new Array("Picchiere","Lancere","Arcere lunare","Sentinella lunare","Accolito lunare","Sacerdote lunare","Teologo lunare","Leone lunare","Cavalieri della Criniera","Drago d'Argento","Cavaliere d'Argento","Magister Ancestrale","Illusione danzante")
    break
    case 2:
    var creature=new Array("Spadaccini","Spadaccini ambidestri","Arceri imperiali","Arceri arcani","Novizi","Maghi","Arcimaghi","Elementari", "Fenice","Cavalieri della Fenice","Sfera prismatica","Juggernaut","Infiltrato")
    break
    case 3:
    //7execute code block 2
    break
    case 4:
    //7execute code block 2
    break
    case 5:
    //7execute code block 2
    break
    case 6:
    //7execute code block 2
    break
    case 7:
    //7execute code block 2
    break
    case 8:
    //7execute code block 2
    break
    case 9:
    //7execute code block 2
    break
    case 10:
    //7execute code block 2
    break
    case 11:
    //7execute code block 2
    break
    case 12:
    //7execute code block 2
    break
    }

    var countcreature
    countcreature= 12
    for (i=0;i<=countcreature;i++)
    {
    theOption=document.createElement("OPTION");
    theOption.value=creature[i];
    theOption.appendChild(document.createTextNode(crea ture[i]));
    myselect.appendChild(theOption);
    }


    }

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.