Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926

    Select che dipende da altra select

    Devo realizzare una query ad un database access
    con pagine asp, solo che la query dovrebbe essere
    fatta tramite campi select ricorsivi, ovvero il
    cui contenuto del campo successivo dipende dalla selezione
    effettuata nel campo precedente,
    un po come avviene nella pagina di ricerca driver di volftp.

    Faccio un esempio:
    Prima select: le option sono le marche (alfa, fiat, lancia ecc.)
    Seconda select: le option sono i modelli della marca scelta prima
    (nel caso avessimo scelto alfa troviamo 33, 75, 164, Arna (???) )
    Terza select: gli allestimenti del modello scelto nella seconda select (quadrifoglio verde, oro, boxer ecc.)

    In seguito il submit del campo form inviera' i valori dei vari campi select insieme ad altri stati (ad esempio nuovo/usato)
    per ottenere il report voluto.

    Grazie per ogni utile indicazione
    Luca

  2. #2
    lo fai con javascript, evento onchange
    nell'evento mettoi il codice per ricaricare la pagina con nuovi parametri

  3. #3
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    o ti carichi tutto inizialmente in un array fatto ad arte ma è na caciara na cosa del genere
    codice:
     
    arr["alfa"]["147"]["quadrifoglio verde"]
    arr["alfa"]["147"]["oro"]
    arr["alfa"]["147"]["boxer"]
    arr["alfa"]["145"]["oro"]
    arr["alfa"]["145"]["boxer"]
    arr["fiat"]["500"]["quello che te pare"]
    arr["fiat"]["600"]["boh"]
    se nn vuoi ricaricare la pagina

    mi spiego? nn credo...
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  4. #4
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    mo mi dovrei spiegare meglio!

    ovviamente tu all'inizio dovrai fare le tue select e costruire l'array nel modo giusto e passarlo lato client a questo script...e dovresti anche migliorare i controlli l'ho fatto al volo...anche se c'ho messo un po di tempo!
    codice:
    <script>
    
    arr = new Array("fiat","jaguar")
    arr["fiat"] = new Array("cinquecento","seicento")
    arr["fiat"]["cinquecento"] = new Array("blu","rosso")
    arr["fiat"]["seicento"] = new Array("grigio","verde","rosso")
    arr["jaguar"] = new Array("r-type","x-type")
    arr["jaguar"]["r-type"] = new Array("blu","azzurro")
    arr["jaguar"]["x-type"] = new Array("grigio","blu")
    
    function funzione()
    {	
    	marca = "" + document.forms[0].marca.value
    	sel = document.getElementById("tipo");
    	for (i=sel.options.length-1;i>-1;i--)
    		sel.options.remove(i)	
    	
    	for (i=0;i<arr[marca].length;i++)
    	{
    		valore = arr[marca][i]
    		var oOption = document.createElement("option");
    		oOption.text =valore;
    		oOption.value = valore;
    		sel.add(oOption)
    	}	
    	
    	sel2 = document.getElementById("colore");
    	for (i=sel.options.length-1;i>-1;i--)
    		sel2.options.remove(i)	
    	for (i=0;i<arr[marca][tipo].length;i++)
    	{
    		valore = arr[marca][tipo][i]
    		var oOption = document.createElement("option");
    		oOption.text = valore;
    		oOption.value = valore;
    		sel2.add(oOption)
    	}
    
    	
    }
    
    function funzione2()
    {		
    	sel = document.getElementById("colore");
    	for (i=sel.options.length-1;i>-1;i--)
    		sel2.options.remove(i)	
    	marca="" + document.forms[0].marca.value
    	tipo = "" + document.forms[0].tipo.value
    	for (i=0;i<arr[marca][tipo].length;i++)
    	{
    		valore = arr[marca][tipo][i]
    		var oOption = document.createElement("option");
    		oOption.text = valore;
    		oOption.value = valore;
    		sel.add(oOption)
    	}
    }
    </script>
    <form>
    <select name="marca" onchange="funzione()">
    <option value="fiat">fiat</option>
    <option value="jaguar">jaguar</option>
    </select>
    <select id="tipo" name="tipo" onchange="funzione2()">
    </select>
    <select id="colore" name="colore" onchange="">
    </select>
    </form>
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  5. #5
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    ah dimenticavo ho riscontrato un problema...stai attento alle alfa nn so per quale oscuro motivo l'array interpreta 145,146,147 ecc anzichè come stringhe come indici o nn so che nn l'ho capito bene...
    codice:
    arr = new Array("alfa")
    arr["alfa"] = new Array("145","146")
    arr["alfa"]["145"] = new Array("blu","rosso")
    arr["alfa"]["146"] = new Array("grigio","verde","rosso")
    alert(arr["alfa"].length)
    se fai quest'alert ti accorgi che gli elementi dell array["alfa"] sono 147
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  6. #6
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    tanta fatica per niente!
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

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.