• User Attivo

    Menu SELECT a tendina dinamico con effetto OnChange

    Ciao a tutti,
    avrei bisogno di riempire delle SELECT direttamente con dati presi da database MySQL senza refreshare la pagina, ma utilizzando il comando OnChange di Javascript (o simili).

    In pratica in base alla selezione della prima select devo interrogare il database ed acquisire i dati per creare l'array da inserire nella seconda select. Stessa cosa succederà quando verrà selezionata la voce della seconda SELECT, che causerà il popolamento della terza SELECT.

    Non ho problemi per la creazione degli array e la connessione al db, mentre ho un pò di problemi con il codice JavaScript; ho trovato qualche esempio in rete ma niente che faccia al caso mio... ne avevo trovato uno perfetto per il mio obiettivo dove veniva usato Ajax ma.. non funziona 😞
    Ecco qua il link: mrwebmaster.it/ajax/articoli/menu-select-dinamici-ajax-php_803.html

    Una cosa così sarebbe perfetta, peccato non funzioni.

    Ciao spero possiate aiutarmi,
    a presto!

    Rammo.


  • User Attivo

    Ok ho trovato l'errore, ora funziona 😉
    Un'altra domanda... come fare ad aggiungere una SELECT dinamica e più che altro come fare ad aggiungere i VALUE="" alle OPTIONS allo script sopra?

    Grazie a tutti,
    Ciao!


  • User Newbie

    Ciao mi chiamo Emanuela e mentre cercavo su internet un modo per risolvere un mio problema ho trovato la tua discussione.
    Io ho un problema simile: ho 2 select che si caricano di elementi presi da un db.Una volta caricata una select devo caricare la seconda in base al valore inserito nella prima, tutto nella srtassa form.
    Non ho proprio idea di come fare. Puoi aiutarmi? mi faresti un enorme favore .
    Grazie in anticipo Emanuela


  • User Newbie

    Questo il codice cho popola due select:
    [INDENT] <html>
    <head>
    <title>Select doppia</title>
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="it" />
    <meta name="Robots" content="All" />
    <script type="text/javascript">

    var bluesplayers= new Array("B.B. King", "Muddy Waters", " Stevie Ray Vaughan", "George Thorogood");
    var rockplayers = new Array("Alvin Lee", "David Gilmour", "Pete Townshend", "Jeff Beck");

    function set_player() {
    var select_genre = document.myform.genre;
    var select_player = document.myform.player;
    var selected_genre = select_genre.options[select_genre.selectedIndex].value;

    select_player.options.length=0;
    if (selected_genre == "blues"){
    for(var i=0; i<bluesplayers.length; i++)
    select_player.options[select_player.options.length] = new Option(bluesplayers*);
    }
    if (selected_genre == "rock"){
    for(var i=0; i<rockplayers.length; i++)
    select_player.options[select_player.options.length] = new Option(rockplayers*);
    }
    }

        </script>
        </head>
    

    <body>
    <h1>Select doppia</h1>

    <form name="myform" method="POST">
    <table>
    <tr>
    <td>Testo:</td><td><INPUT TYPE="text" NAME="username" SIZE="8" MAXLENGTH="8">
    </td></tr>
    <tr>
    <td>Genre:</td><td>
    <select name="genre" onchange="set_player()">
    <option value="blues">Select One
    <option value="blues">Blues
    <option value="rock">Rock
    </select>
    </td>
    </tr><tr>
    <td>Guitarist:</td><td>
    <select name="player">
    <option>------
    </select>
    </td></tr>
    </table>
    </form>

    </body>
    </html>

    [/INDENT]Io codice sopra funziona perfettamente se lo provi. Per prendere i dati dal db avrei bisogno di sapere se mysl-postgres... comunque qui un esempio in php-mysql:

    function getparent($parentid,$title) {
    global $dbi;
    $result=sql_query("SELECT cid,parentcid,title FROM dw_archivio_categories WHERE cid='$parentid'", $dbi) or die("Query non valida getparent:" . sql_error());
    list($cid, $pparentid, $ptitle) = sql_fetch_row($result, $dbi);
    if ($ptitle!="") $title=$ptitle."/".$title;
    if ($pparentid!=0) {
    $title=getparent($pparentid,$title);
    }
    return $title;
    }
    //in altra funzione o flusso di codice:
    $resultcat = sql_query("SELECT cid,parentcid,title,catlanguage FROM dw_archivio_categories ORDER BY cid", $dbi);
    $numrows = sql_num_rows($resultcat, $dbi);
    if ($numrows>0) {
    echo "<select name='cat'>";
    while($row2 = sql_fetch_array($resultcat,$dbi)) {
    $cid2 = $row2['cid'];
    $ctitle2 = $row2['title'];
    $parentid2 = $row2['parentcid'];
    $catlanguage = $row2['catlanguage'];
    if ($parentid2!=0) $ctitle2 = getparent($parentid2,$ctitle2);
    $cat = $cid2."-".$parentid2;
    echo "<option value='$cat' $sel>$cat $ctitle2 - $catlanguage</option>";
    }
    echo "</select> ";
    echo "<br><input type='submit' name='bttedit' value='"._EDITCAT."'> 
    <input type='submit' name='bttdel' value='"._DELCATEGORY."'> ";
    }

    Praticamente la tebella categorie ha un ID e un PARENT, attenzione $dbi è la variabile di connessione e sql_query si possono impostare per con prefisso pg_ o my_ in dase al tuo db. Infine le costanti come _DELCATEGORY sono definite in altro file di traduzione. Per cambiare in dinamico basta mettere "<select name="genre" onchange="set_player()">". Comunque spero che come esempio vada bene, se no scrivimi!

    Danzisiweb :wink3:


  • User Newbie

    Ciao a tutti, sto impazzendo con la realizzazione di una select che dipende da un altra select però vorrei fare in modo che il risultato della scelta venga visualizzato sulla stessa select senza aggiungere una ulteriore select..
    mi potete aiutare ?

    p.s. i valori della select li prelevo da un database


  • User Newbie

    Ciao a tutti
    vorrei fare una cosa simile ma non so da che parte cominciare. Quancot a capacità PHP sono a livello copia e incolla.

    In un form, compialndo il campo ID, vorrei popolare automaticamente gli altri campi del form attingendo dal DB.

    Grazie


  • User Newbie

    @Rammo said:

    Ok ho trovato l'errore, ora funziona 😉
    Un'altra domanda... come fare ad aggiungere una SELECT dinamica e più che altro come fare ad aggiungere i VALUE="" alle OPTIONS allo script sopra?

    Grazie a tutti,
    Ciao!

    Qual è l'errore? Anch'io sto utilizzando il codice di mr webmaster !!! Sono disperato, ho provato in tutti i modi, per favore potresti aiutarmi?