8 messaggi dal 12 agosto 2002
Io ho una combox e scelgo un record, la combox successiva filtra i record legati e la combox successiva idem.. ad esempio
Gruppo: Ferramenta
Sottogruppo: cacciaviti
Categoria: stella

vorrei che le combox fossero legate fra di loro....

tutto questo in una pagina ASP è possibile??

grazie Franco

11.886 messaggi dal 09 febbraio 2002
Contributi
lo puoi fare con il Javascript... io ho dovuto fare la medesima cosa per un ricettario. Due select:
Antipasti -> Tartine (o salumi, bignè, crostini ecc..)

Praticamente a seconda di quello che è selezionato nella prima select, la seconda viene popolata con le sottocategorie della prima.
Devi fare tanti array lato client. Nel tuo caso:

generale = new Array()
generale[0]="ferramenta"
generale[1]="ufficio"
generale[2]="igiene"
...
e così via.
poi per ogni nome dell'array "generale" fai un'altro array:

ferramenta = new Array()
ferramenta[0] = "cacciaviti"
ferramenta[1] = "chiavi"
ferramenta[2] = "serrature"
...
e siccome hai tre livelli di categorie, ti fare fare un array per ogni voce della sottocategoria ferramenta... è un po' lunghetto in realtà..
cacciaviti = new Array()
cacciaviti[0] = "croce"
cacciaviti[1] = "piano"

Nella prima select, all'evento onChange gli dici di svuotare tutto il contenuto della seconda e di ripopolarlo con i sottogruppi della voce selezionata nella prima select. Per svuotare una select fai:

categ = document.nomeform.nomesecondaselect
while (categ.length > 0){
categ.remove(0)
}

per ripopolarla...
valore = eval(document.nomeform.nomeprimaselect.value)
for (i=0; i < valore.length; i++){
categ.options[i] = new Option(valore[i], valore[i])
}

purtroppo lato server non puoi fare niente, se non passare i nomi dei gruppi e sottogruppi. Si tratta di modificare dinamicamente il contenuto della pagina e questo lo puoi fare solamente con uno script lato client. Con un po' di perseveranza anche questo funzionerà...

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
8 messaggi dal 12 agosto 2002
Quello che mi hai descritto è la stessa cosa di come la avevo pensata anchio, ma andrebbe bene in una query selettiva con filtri, ma se devo inserire un nuovo record qua diventa molto piu difficile, perche con onChange="this.form.submit()" mi fa un reload e la asp mi da errore....
come posso fare in una pagina di inserimento record?
Grazie Franco

<b>BrightSoul ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote><hr height=1 noshade id=quote>
lo puoi fare con il Javascript... io ho dovuto fare la medesima cosa per un ricettario. Due select:
Antipasti -&gt; Tartine (o salumi, bignè, crostini ecc..)

Praticamente a seconda di quello che è selezionato nella prima select, la seconda viene popolata con le sottocategorie della prima.
Devi fare tanti array lato client. Nel tuo caso:

generale = new Array()
generale[0]="ferramenta"
generale[1]="ufficio"
generale[2]="igiene"
...
e così via.
poi per ogni nome dell'array "generale" fai un'altro array:

ferramenta = new Array()
ferramenta[0] = "cacciaviti"
ferramenta[1] = "chiavi"
ferramenta[2] = "serrature"
...
e siccome hai tre livelli di categorie, ti fare fare un array per ogni voce della sottocategoria ferramenta... è un po' lunghetto in realtà..
cacciaviti = new Array()
cacciaviti[0] = "croce"
cacciaviti[1] = "piano"

Nella prima select, all'evento onChange gli dici di svuotare tutto il contenuto della seconda e di ripopolarlo con i sottogruppi della voce selezionata nella prima select. Per svuotare una select fai:

categ = document.nomeform.nomesecondaselect
while (categ.length &gt; 0){
categ.remove(0)
}

per ripopolarla...
valore = eval(document.nomeform.nomeprimaselect.value)
for (i=0; i &lt; valore.length; i++){
categ.options[i] = new Option(valore[i], valore[i])
}

purtroppo lato server non puoi fare niente, se non passare i nomi dei gruppi e sottogruppi. Si tratta di modificare dinamicamente il contenuto della pagina e questo lo puoi fare solamente con uno script lato client. Con un po' di perseveranza anche questo funzionerà...

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>



11.886 messaggi dal 09 febbraio 2002
Contributi
Ma... infatti non devi fare un submit! devi soltanto svuotare e ripopolare le select, il submit lo fai soltanto alla fine quando clicchi un bottone, non la select.

Tu puoi tranquillamente usare questo metodo per definire la categoria di un nuovo oggetto da inserire nel database, tanto lo script è solo lato client.
Se ti vuoi semplificare un po' le cose, puoi ridurre tutto a una sola select che avrà come valore ad esempio:
Ferramenta;Cacciaviti;Stella
oppure
Ferramenta;Cacciaviti;Piano

dovrai elencare una serie lunghissima di possibili categorie però è finito lì, poi non ci pensi più... boh dipende da come vuoi strutturare l'inserimento.
La pagina non si deve ricaricare finche il nuovo oggetto da inserire non è stato tutto definito da select, textbox, check e le solite cose dei form...

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
8 messaggi dal 12 agosto 2002
il mio problema è che ho un catalogo con 30.000 articoli e i gruppi sottogruppi e categorie sono smepre in movimento bisogna sempre aggiungerne di nuove ecco perche io volevo collegarmi a tabelle e non ad array
provo con il tuo consiglio eventualmente rifaccio la domanda ma piu esplicativa
grazie...


<b>BrightSoul ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote><hr height=1 noshade id=quote>
Ma... infatti non devi fare un submit! devi soltanto svuotare e ripopolare le select, il submit lo fai soltanto alla fine quando clicchi un bottone, non la select.

Tu puoi tranquillamente usare questo metodo per definire la categoria di un nuovo oggetto da inserire nel database, tanto lo script è solo lato client.
Se ti vuoi semplificare un po' le cose, puoi ridurre tutto a una sola select che avrà come valore ad esempio:
Ferramenta;Cacciaviti;Stella
oppure
Ferramenta;Cacciaviti;Piano

dovrai elencare una serie lunghissima di possibili categorie però è finito lì, poi non ci pensi più... boh dipende da come vuoi strutturare l'inserimento.
La pagina non si deve ricaricare finche il nuovo oggetto da inserire non è stato tutto definito da select, textbox, check e le solite cose dei form...

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>



11.886 messaggi dal 09 febbraio 2002
Contributi
ah ho capito... allora c'è un passo in più: rendere la categorie dinamiche.

dovreste avere un database apposito che contenga la gerarchia di tutte le categorie. Sono sicuro che il metodo degli array lato client è ancora valido, devi "solo" generarlo dinamicamente.

Facendo un passo alla volta vedrai che si riesce a portare a termine anche questa cosa. Prima di tutto dovresti creare questo database che contenga le categorie. Ti bastano 3 campi:
id, livello, nome
L'id è un numero univoco e progressivo che indica la categoria.
Il livello ti dice se la categoria è primaria o se è una sottocategoria.
In queso campo mettici l'id della categoria superiore al quale si riferisce. Esempio:
è una categoria primaria? ci scrivi 0.
E' secondaria? ci scrivi l'id univico della primaria
E' terziaria? ci va l'id della secondaria, che a sua volta punta alla primaria.
Non è molto facile da spiegare, anche perchè è tutto un po' articolato...
Vedi tu, magari riesci a trovare una soluzione più semplice...

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
8 messaggi dal 12 agosto 2002
io ho fatto cosi:
tabella CAT1 idcat1 descrizione
tabella CAT2 idcat2 idcat1descrizione
tabella CAT3 idcat3 idcat2 descrizione

poi li ho collegati su access con delle relazioni uno a molti

il vero problema è la selezione di uno ad uno per l'inserimento dei dati
se ci pensi è un casino ogni volta filtrare le select

11.886 messaggi dal 09 febbraio 2002
Contributi
si immagino...purtroppo non è semplice, anche perchè avrai un casino di voci da relazionare :( non so che altro consigliarti se non spenderci qualche tempo per realizzarlo. Penso che sia fattibile anche se non è sempre facile automatizzare una roba intricata... auguri!!

-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.