ciao
prova a guardare
http://www.dynamicdrive.com/dynamicindex1/index.html
non sono sicuro, ma mi sembra di aver visto qualcosa di simile

Salve,
volevo sapere come fosse possibile realizzare (se avete qualche link, spezzone di codice...) il classico menù ad albero tenendo presente che le categorie e le sottocategorie sono prese dal database e che a sinistra della scritta sia presente il classico quadratino con il + se il menù è espandibile e - se non lo è.
|+| Categoria
---|+| Sottocategoria
-------|-| Prodotto 1
Grazie![]()
ciao
prova a guardare
http://www.dynamicdrive.com/dynamicindex1/index.html
non sono sicuro, ma mi sembra di aver visto qualcosa di simile

No
Sono tutti statici! A me servirebbe che si popolassero in base ai dati che ho nel database!
L'albero che fa al caso mio può essere così: http://www.destroydrop.com/javascrip...e/default.html
Ultima modifica di nofcfro; 11-08-2012 alle 16:13
ciao
devi combinare il js con i dati che estrai dal db

Il file che ti fa scaricare quel sito che qui per comodità allego: alberof.zip
Praticamente si tratterebbe di rendere dinamico solamente questo pezzo, ma come???
Codice HTML:<script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'My example tree'); d.add(1,0,'Node 1','example01.html'); d.add(2,0,'Node 2','example01.html'); d.add(3,1,'Node 1.1','example01.html'); d.add(4,0,'Node 3','example01.html'); d.add(5,3,'Node 1.1.1','example01.html'); d.add(6,5,'Node 1.1.1.1','example01.html'); d.add(7,0,'Node 4','example01.html'); d.add(8,1,'Node 1.2','example01.html'); d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif'); d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir'); d.add(11,9,'Mom\'s birthday','example01.html'); d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif'); document.write(d); //--> </script>
Ultima modifica di nofcfro; 11-08-2012 alle 16:59
ciao
sto cercando di capire la logica con cui si formano i link livelli e sottolivelli.
poi dimmi: hai solo tre livelli? categoria/sottocategoria/prodotto ?
e hai tre tabelle tra loro collegate dagli id?
non ultimo: usi php (spero)?
ciao
penso di aver capito la logica, se (dopo esserti fatto le copie di riserva) provi a sostituire questo a quello che mi hai postato
e verificare che venga fuori la stessa cosa, se si ho capito. (non considerare l'indentatura l'ho fatta per cercare di capire)Codice HTML:<script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'My example tree'); d.add(1,0,'Node 1','example01.html'); d.add(2,1,'Node 1.1','example01.html'); d.add(3,2,'Node 1.1.1','example01.html'); d.add(4,3,'Node 1.1.1.1','example01.html'); d.add(5,1,'Node 1.2','example01.html'); d.add(6,0,'Node 2','example01.html'); d.add(7,0,'Node 3','example01.html'); d.add(8,0,'Node 4','example01.html'); d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif'); d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir'); d.add(11,9,'Mom\'s birthday','example01.html'); d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif'); document.write(d); //--> </script>
aspetto le risp anche al precdente, poi (se ho capito) ti mando come intregrarlo con i dati sel db rendendolo dinamico

Uso PHP (mentre non conosco bene javascript), le tabelle sono collegate dagli id (chiave primaria), i livelli sono solamente tre!
Lo schema è questo:
|+| Categoria 1
---|+| SottoCategoria A
----|-|Prodotto AA1
----|-|Prodotto AA2
----|-|Prodotto AA3
---|+| SottoCategoria B
----|-|Prodotto BB1
----|-|Prodotto BB2
----|-|Prodotto BB3
|+| Categoria 2
---|+| SottoCategoria C
----|-|Prodotto CC1
----|-|Prodotto CC2
----|-|Prodotto CC3
---|+| SottoCategoria D
----|-|Prodotto DD1
----|-|Prodotto DD2
----|-|Prodotto DD3
La tabella Categoria sarà intuitivamente composta così:
id_cat
nome_cat (es. Condomini)
La tabella Sottocategoria:
id_scat
id_cat
nome_scat (es. inquilini)
La tabella Prodotti:
id_prod
id_cat
id_scat
nome_prod (es. stanze della casa)
Quindi ogni nodo non sarà preimpostato ma dovrà essere generato dal database!
Io pensavo di mettere un ciclo WHILE per generare tutti gli array, però la complicazione sta nel dirgli che nodo deve avere!!
Grazie per il tempo![]()
ciao
prova a guardare, considera comunque che è un'idea e non so se funzi.
comunque verifica i nomi dei campi li ho messi un po' a caso e per cercare di far capire cosa estraggo
poi ho usato le vecchie query, se la conosci è meglio che tu passi alla PDOCodice PHP:<?php
//i dati di connessione
//trasformo tutto il js in php
echo "
<script type=\"text/javascript\">
d = new dTree('d');
d.add(0,-1,'menù');
";
$q_1=mysql_query("SELECT * FROM categorie ORDER BY categoria");
$numero_0=1;
//$livello=0;
while($ri_1=mysql_fetch_array($q_1)){
$livello=0;//metto il livello a zero, e riperto da 0 dopo aver elencato i prodotti
$categoria=$ri_1['categoria'];
$id_cat=$ri_1['id'];
echo "d.add($numero_0,$livello,'$categoria','tua_pagina.php');";//non so cosa ci deve andare al posto di tua_pagina
$numero_0++;//incremento di uno
$livello++;//incremento di uno diventa 1
$q_2=mysql_query("SELECT * FROM sottocategoria WHERE id_categoria=$id_cat ORDER BY sottocategoria");
while($ri_2=mysql_fetch_array($q_2)){
$sotto_categoria=$ri_2['sottocategoria'];
$id_sotto=$id_cat=$ri_1['id_sotto'];
echo "d.add($numero_0,$livello,'$sotto_categoria','tua_pagina.php');";//non so cosa ci deve andare al posto di tua_pagina
$numero_0++;//incremento di uno
$livello++;//incremento di uno diventa 2
$q_3=mysql_query("SELECT * FROM prodotti WHERE id_categoria=$id_cat AND id_sotto=$id_sotto ORDER BY nome_prodotto");
while($ri_3=mysql_fetch_array($q_3)){
$nome_prodotto=$ri_2['nome_prodotto'];
$id_prod=$ri_2['id_prodotto'];//questo può servirti se devi fare il link alla scheda prodotto
//vedi sotto
echo "d.add($numero_0,$livello,'$nome_prodotto','scheda_prodotto.php?id=$id_prod');";
$numero_0++;//incremento di uno
//qui non serve incrementare il livello
}
}
}
echo "
document.write(d);
</script>
";
?>
p.s.
da quello che ho capito in d.add(primo numero,secondo numero,..... il
primo numero è un numero progressivo che si incrementa di uno ad ogni link
secondo numero è il livello con 0 il primo, 1 il secondo ....
se non funzia non mandarmi...

Innanzitutto GRAZIE per il tempo
C'è qualcosa che non va perché già dalla prima riga prende solamente una categoria (es. solo musica invece che musica e letteratura) invece che tutte
Ho creato un piccolo file SQL così diviso per fare delle prove, sperando che un lavoro del genere possa interessare parecchie persone:
CATEGORIA:
Musica
Letteratura
SOTTOCATEGORIA:
Pop
Metal
Italiana
Inglese
PRODOTTI:
Abba
Beatles
Slayer
Metallica
Pirandello
Verga
Joyce
Orwell
Allego il file: esempio.zip
Ultima modifica di nofcfro; 12-08-2012 alle 13:13