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

    select triplo + matrice database

    Ho bisogno di fare 3 select dinamiche prendendo i dati da un database.

    Ho trovato questo script:
    codice:
    <FORM name="form">
    <table border="0" cellspacing="0" cellpadding="0">
      <tr align="center"> 
        <td nowrap height="11"> 
    
    <select name="ambiente" size="1" onChange="redirect(this.options.selectedIndex)">
    <option selected>---Select1-------------</option>
    <option>Webmaster Sites</option>
    <option>News Sites</option>
    </select>
    
    <select name="funzioni" size="1" onChange="redirect1(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select2--------------</option>
    <option value=" " selected>---Select2--------------</option>
    </select>
    
    <select name="comandi" size="1" onChange="redirect2(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select3----------------</option>
    <option value=" " selected>---Select3----------------</option>
    </select>
    
    <script>
    <!--
    
    
    var groups=document.form.ambiente.options.length
    var group=new Array(groups)
    for (i=0; i<groups; i++)
    group[i]=new Array()
    
    group[0][0]=new Option("---Select2---"," ");
    
    group[1][0]=new Option("Now Select This One"," ");
    group[1][1]=new Option("JavaScript","47");
    group[1][2]=new Option("DHTML","46");
    group[1][3]=new Option("CGI","45");
    
    group[2][0]=new Option("Now Select This One"," ");
    group[2][1]=new Option("General News","115");
    group[2][2]=new Option("Technology News","116"); 
    
    var temp=document.form.funzioni
    
    
    function redirect(x){
    for (m=temp.options.length-1;m>0;m--)
    temp.options[m]=null
    for (i=0;i<group[x].length;i++){
    temp.options[i]=new Option(group[x][i].text,group[x][i].value)
    }
    temp.options[0].selected=true
    redirect1(0)
    }
    
    
    
    var secondGroups=document.form.funzioni.options.length
    var secondGroup=new Array(groups)
    for (i=0; i<groups; i++)  {
    secondGroup[i]=new Array(group[i].length)
    for (j=0; j<group[i].length; j++)  {
    secondGroup[i][j]=new Array()  }}
    
    secondGroup[0][0][0]=new Option("---Select 3---"," ");
    secondGroup[1][0][0]=new Option("---Select 3---"," ");
    secondGroup[1][1][0]=new Option("Now Select This One"," ");
    secondGroup[1][1][1]=new Option("JavaScript Kit","http://javascriptkit.com");
    secondGroup[1][1][2]=new Option("JavaScript for the non programmer","http://webteacher.com/javascript/");
    secondGroup[1][1][3]=new Option("Java-Scripts.net","http://java-scripts.net");
    
    secondGroup[1][2][0]=new Option("Now Select This One"," ");
    secondGroup[1][2][1]=new Option("Dynamic Drive","http://www.dynamicdrive.com");
    secondGroup[1][2][2]=new Option("Beginner\'s Guide to DHTML","http://www.geocities.com/ResearchTriangle/Facility/4490/");
    secondGroup[1][2][3]=new Option("Web Coder","http://webcoder.com/");
    
    secondGroup[1][3][0]=new Option("Now Select This One"," ");
    secondGroup[1][3][1]=new Option("CGI Resources","http://www.cgi-resources.com");
    secondGroup[1][3][2]=new Option("Ada\'s Intro to CGI","http://adashimar.hypermart.net/");
    
    secondGroup[2][0][0]=new Option("---Select 3---"," ");
    secondGroup[2][1][0]=new Option("Now Select This One"," ");
    secondGroup[2][1][1]=new Option("CNN","http://www.cnn.com");
    secondGroup[2][1][2]=new Option("MSNBC","http://www.msnbc.com");
    secondGroup[2][1][3]=new Option("ABC News","http://www.abcnews.com");
    
    secondGroup[2][2][0]=new Option("Now Select A Page"," ");
    secondGroup[2][2][1]=new Option("News.com","http://www.news.com");
    secondGroup[2][2][2]=new Option("Wired","http://www.wired.com");
    
    var temp1=document.form.comandi
    function redirect1(y){
    for (m=temp1.options.length-1;m>0;m--)
    temp1.options[m]=null
    for (i=0;i<secondGroup[document.form.ambiente.options.selectedIndex][y].length;i++){
    temp1.options[i]=new Option(secondGroup[document.form.ambiente.options.selectedIndex][y][i].text,secondGroup[document.form.ambiente.options.selectedIndex][y][i].value)
    }
    temp1.options[0].selected=true
    }
    
    function redirect2(z){
    window.location=temp1[z].value
    }
    
    //-->
        </script>
    
    		</td>
      </tr>
    </table>
    </FORM>
    Ho cercato di modificarlo:
    codice:
    <%@ language = vbscript%> 
    
    <FORM name="form">
    <table border="0" cellspacing="0" cellpadding="0">
      <tr align="center"> 
        <td nowrap height="11"> 
    <%
    sql="select distinct ambiente from [comandi]"
    set rs=con.execute(sql)
    %>
    <select name="ambiente" size="1" onChange="redirect(this.options.selectedIndex)">
    <option selected>---Select1-------------</option>
    <%do while not rs.eof%>
    <option><%=rs("ambiente")%></option>
    <%rs.movenext
    loop
    %>
    </select>
    
    <select name="funzioni" size="1" onChange="redirect1(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select2--------------</option>
    <option value=" " selected>---Select2--------------</option>
    </select>
    
    <select name="comandi" size="1" onChange="redirect2(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select3----------------</option>
    <option value=" " selected>---Select3----------------</option>
    </select>
    
    <script>
    <!--
    
    
    var groups=document.form.ambiente.options.length
    var group=new Array(groups)
    for (i=0; i<groups; i++)
    group[i]=new Array()
    
    group[0][0]=new Option("---Select2---"," ");
    <%
    sql2="select * from [comandi]"
    set rs2=con.execute(sql2)
    %>
    
    for (k=0; k<5; k++)
    
    group[1][k]=new Option("<%=rs2("funzione")%>"," ");
    group[2][k]=new Option("<%=rs2("comando")%>"," ");
    
    var temp=document.form.funzioni
    
    
    function redirect(x){
    for (m=temp.options.length-1;m>0;m--)
    temp.options[m]=null
    for (i=0;i<group[x].length;i++){
    temp.options[i]=new Option(group[x][i].text,group[x][i].value)
    }
    temp.options[0].selected=true
    redirect1(0)
    }
    
    
    
    var secondGroups=document.form.funzioni.options.length
    var secondGroup=new Array(groups)
    for (i=0; i<groups; i++)  {
    secondGroup[i]=new Array(group[i].length)
    for (j=0; j<group[i].length; j++)  {
    secondGroup[i][j]=new Array()  }}
    
    secondGroup[0][0][0]=new Option("---Select 3---"," ");
    
    
    var temp1=document.form.comandi
    function redirect1(y){
    for (m=temp1.options.length-1;m>0;m--)
    temp1.options[m]=null
    for (i=0;i<secondGroup[document.form.ambiente.options.selectedIndex][y].length;i++){
    temp1.options[i]=new Option(secondGroup[document.form.ambiente.options.selectedIndex][y][i].text,secondGroup[document.form.ambiente.options.selectedIndex][y][i].value)
    }
    temp1.options[0].selected=true
    }
    
    function redirect2(z){
    window.location=temp1[z].value
    }
    
    //-->
        </script>
    
    		</td>
      </tr>
    </table>
    </FORM>
    Ho provato solo con la prima parte, ma mi sono accorto che "k" non viene sostituita con i valori 0,1,2,...

    Cosa ho sbagliato? C'è un modo + semplice?

    Grazie

    Alessandro

  2. #2

  3. #3
    Ho provato anche questo script, ma il problema è lo stesso. Prendendo i dati dal db, non so quante siano le opzioni, per cui non posso mettere "group[0], group[1],... ma devo utilizzare una variabile. Se faccio come ho fatto nello script sopra mi rimane indicata la variabile (es. k), ma non viene assegnato il valore.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.