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

    Select generate dinamicamente .....

    Ciao.
    Scusate la scoperta dell'acqua calda
    ma volevo (mi piacerebbe )
    sapere se un approccio del genere
    č corretto :
    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">
    function 
    createSelect(myarray,target)
    {
        var 
    myselect document.createElement("select");
        
    myselect.setAttribute("id""myselect");
        
    document.getElementById(target).appendChild(myselect);
        var 
    myoption = new Array();
        var 
    0;
        for(var 
    value in myarray)
        {
            
    myoption[i] = document.createElement("option");
            
    myoption[i].setAttribute("value"value);
            var 
    text document.createTextNode(myarray[value]);
            
    myoption[i].appendChild(text);
            
    document.getElementById("myselect").appendChild(myoption[i]);
            
    i++;
        }
        
        
        
        

    }
    window.onload = function()
    {
    var 
    myarray = new Array();
    myarray["uno"] = "one";
    myarray["due"] = "two";
    myarray["tre"] = "three";
    myarray["quattro"] = "four";
    createSelect(myarray,"frm");
    var 
    sel document.getElementById("myselect");
    sel.onchange = function()
    {
    var 
    val sel.options[sel.selectedIndex].value;
    alertval );
    }

    }
    </script>

    </head>

    <body>
    <form id="frm" action="mypage.php" method="post" name="frm">

    </form>
    </body>
    </html> 
    o se esiste un modo migliore o + flessibile (eventi a parte).







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

  2. #2
    Direi che il metodo č corretto. L'unica cosa, puoi fare a meno dell'array myoption, basta una variabile.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  3. #3

    ............

    Codice PHP:
    var myoption "";
        for(var 
    value in myarray)
        {
            
    myoption document.createElement("option");
            
    myoption.setAttribute("value"value);
            var 
    text document.createTextNode(myarray[value]);
            
    myoption.appendChild(text);
            
    document.getElementById("myselect").appendChild(myoption);
            
        } 
    Grazie per l'utile appunto.


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

  4. #4

    ...e se anche le option fossero dinamiche??

    scusate se mi intrometto...ma ero interessato a questo script...
    Vi chiedo, come andrebbe modificato il codice se le option le volessi ricavare da un db??

    Grazie.

  5. #5

    Re: ...e se anche le option fossero dinamiche??

    Originariamente inviato da Shangri-La
    scusate se mi intrometto...ma ero interessato a questo script...
    Vi chiedo, come andrebbe modificato il codice se le option le volessi ricavare da un db??

    Grazie.
    Non dovrebbe essere modificato, devi solo definire l'array myarray allo stesso modo di come č stato fatto nello script, solo che gli devi passare le chiavi e i valori estratti dal tuo db. Lo devi fare con un linguaggio server-side, in pratica scrivi del codice javascript utilizzando php/asp/etc.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  6. #6
    In pratica in ASP dovrebbe essere cosi?


    codice:
    'APRO IL DB E CREO IL RECORDSET
    
    <script language="JavaScript" type="text/JavaScript">
    window.onload = function()
    {
    var myarray = new Array();
    <% Do While Not Rs.EOF %>
    myarray["<%=Rs('Label')%>"] = "<%=Rs('Id')%>";
    <% Rs.MoveNext
    Loop %>
    
    ecc..
    ecc..
    
    </script>
    Ho scritto un' eresia??

  7. #7

    ........

    E in php poi utilizzare una function
    che recupera i dati da mysql o da flat file
    (si puō migliorare ma per fare un semplice esempio)
    Codice PHP:
    <?php
    function createJavaScript($dataSource,$arrayName='rows')
    {
        
    // validate variable name
        
    if(!is_string($arrayName))
        {
            die(
    'Invalid variable name');
        }
        
    // initialize JavaScript string
        
    $javascript='<script>var '.$arrayName.'=[];';
        
    // check if $dataSource is a file or a result set
        
    if(is_file($dataSource))
        {
               
    // read data from file
            
    $row=file($dataSource);
            
    // build JavaScript array
            
    for($i=0;$i<count($row);$i++)
            {
                  
    $javascript.=$arrayName.'['.$i.']="'.trim($row[$i]).'";';
                
    $javascript.="\n";
            }
        }
        
    // read data from result set
        
    else
        {
            
    $i 0;
            
    $tempOutput='';
            while(
    $row=mysql_fetch_array($dataSource,MYSQL_NUM))
            {
                
    $tempOutput.= $arrayName.'['.$i.']'."=\"".trim($row[0]).'";';
                
    $tempOutput.= "\n";
                
    $i++;
            }
            
    $javascript.= $tempOutput;
        }
            
    $javascript.='</script>'."\n";
             
    // return JavaScript code
            
    return $javascript;
        }
    echo 
    createJavaScript('news.txt','news');
    ?>
    Puoi trovare una spiegazione qui



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

  8. #8
    Originariamente inviato da Shangri-La
    In pratica in ASP dovrebbe essere cosi?


    codice:
    'APRO IL DB E CREO IL RECORDSET
    
    <script language="JavaScript" type="text/JavaScript">
    window.onload = function()
    {
    var myarray = new Array();
    <% Do While Not Rs.EOF %>
    myarray["<%=Rs('Label')%>"] = "<%=Rs('Id')%>";
    <% Rs.MoveNext
    Loop %>
    
    ecc..
    ecc..
    
    </script>
    Ho scritto un' eresia??
    Inverti Id e Riga, la chiave di myarray viene assegnata all'attributo value della option.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #9
    Grazie Anankin ho provato e funziona!
    x whisher: farlo in PHP č ancora presto per me...sono alle primissime armi!

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.