Mam sobie skrypcik generujący piękne drzewko :-) [wzięty z netu] Teraz pytanie jak zrobić by pokazywały się tylko główne kategorie i po kliknięciu zagłębiały by się dalej. Jednak po wybraniu innej głównej kategorii zwijało poprzenią jednocześnie pokazując podkategorie wybranej ostatnio kategorii głównej. Szukałam wszędzie i jedyne co znalazłam to przykład: bendiego - wybierz "bez stylu", ale nie znalazłam niestety nawet fragmentów kodów. Nawiasem mówiąc jest to dokładnie to czego potrzebuję.
a kodzik z bazą jest następujący:
<? /* DROP TABLE IF EXISTS categories; CREATE TABLE categories ( CatID int(11) NOT NULL auto_increment, CatName varchar(50) default NULL, PRIMARY KEY (CatID) ) TYPE=MyISAM; # # Dumping data for table 'categories' # INSERT INTO categories VALUES (1,'Main 1'); INSERT INTO categories VALUES (2,'Main 2'); INSERT INTO categories VALUES (3,'Main 3'); INSERT INTO categories VALUES (4,'Main 4'); INSERT INTO categories VALUES (5,'Main 5'); INSERT INTO categories VALUES (6,'Main 6'); INSERT INTO categories VALUES (7,'Main 7'); INSERT INTO categories VALUES (8,'Main 8'); INSERT INTO categories VALUES (25,'Sub 1-1'); INSERT INTO categories VALUES (32,'Sub 2-1'); INSERT INTO categories VALUES (33,'Shared 1'); INSERT INTO categories VALUES (34,'Sub 2-1-1'); INSERT INTO categories VALUES (35,'Sub 2-1-2'); INSERT INTO categories VALUES (36,'Sub 2-2'); INSERT INTO categories VALUES (37,'Sub 2-2-1'); INSERT INTO categories VALUES (38,'Sub 2-3'); INSERT INTO categories VALUES (39,'Sub 2-4'); # # Table structure for table 'categories2parents' # DROP TABLE IF EXISTS categories2parents; CREATE TABLE categories2parents ( CatID int(11) default NULL, ParentID int(11) default NULL ) TYPE=MyISAM; # # Dumping data for table 'categories2parents' # INSERT INTO categories2parents VALUES (1,0); INSERT INTO categories2parents VALUES (2,0); INSERT INTO categories2parents VALUES (3,0); INSERT INTO categories2parents VALUES (4,0); INSERT INTO categories2parents VALUES (5,0); INSERT INTO categories2parents VALUES (6,0); INSERT INTO categories2parents VALUES (7,0); INSERT INTO categories2parents VALUES (8,0); INSERT INTO categories2parents VALUES (25,1); INSERT INTO categories2parents VALUES (32,8); INSERT INTO categories2parents VALUES (33,2); INSERT INTO categories2parents VALUES (33,3); INSERT INTO categories2parents VALUES (34,32); INSERT INTO categories2parents VALUES (35,32); INSERT INTO categories2parents VALUES (36,2); INSERT INTO categories2parents VALUES (37,36); INSERT INTO categories2parents VALUES (38,5); INSERT INTO categories2parents VALUES (39,4); */ class menuSystem { var $num_subs; //Set this to be what should be used for indenting. var $delim = ' '; function menuSystem() { $this->loadData(); } function loadData() { categories c, categories2parents c2p WHERE c.CatID = c2p.CatID ORDER by c2p.ParentID, c.CatName\") if($ParentID == 0) { } else { } } return; } function print_main($arg) { ?> <a href=\"<?=$PHP_SELF?>?catid=<?=$this->cats[0][$arg][ID]?>\"> <?=$this->cats[0][$arg][catName]?> </a> <br> <? } function make_delim() { for($i=0;$i<$this->num_subs;$i++) { $d .= $this->delim; } return $d; } function print_subs($arg) { foreach($arg as $key => $val) { $this->num_subs++; $this->num_subs++; ?> <?=$this->make_delim()?> <a href=\"<?=$PHP_SELF?>?catid=<?=$arg[$key][ID]?>\"> <?=$arg[$key][catName]?> </a> <br> <? $this->print_subs($this->cats[$arg[$key][ID]]); $this->num_subs--; } else { ?> <?=$this->make_delim()?> <a href=\"<?=$PHP_SELF?>?catid=<?=$arg[$key][ID]?>\"> <?=$arg[$key][catName]?> </a> <br> <? $this->num_subs--; } } return; } function printMenu() { for($i=0;$i<count($this->cats[0]);$i++) { $this->print_main($i); $this->print_subs($this->cats[$this->cats[0][$i][ID]]); } } return; } } $dbname = 'test'; $dbhost = 'localhost'; $dbuser = '***'; $dbpass = '***'; $m = new menuSystem; $m->printMenu(); ?>