Mailinglisten-Archive |
Hallo Leute, Hier mal wieder eine Deksportaufgabe damit der Freitag shneller vorbei geht :-)) Ich will im Prinzip ein Warengruppen-Admin-Tool für einen Onlineshop schreiben. Dabei habe ich folgende Tabelle: CatID : CatPID : Name --------------------- 1 : NULL : Cat-1 2 : NULL : Cat-2 3 : 1 : Cat-1-1 4 : 1 : Cat-1-2 5 : 4 : Cat-1-2-1 6 : 2 : Cat-2-1 u.s.w., also CatID ist die Eindeutige ID, CatPID jeweils die ID des Vaterknotens... Cat-1 Cat-1-1 Cat-1-2 Cat-1-2-1 Cat-2 Cat-2-1 Nun will ich eine Ausgabe in der Form, dass am Anfang alle Einträge mit CatPID = NULL untereinander stehen (also hier nur Cat-1 und Cat-2). Klickt man nun auf einen dieser Links (es soll als Parameter nur die eindeutige CatID übergeben werden), soll exakt dieser Ast ein Level weiter aufklappen (also nicht alles), dann kann ich bei dem aufgeklappten Ast wieder klicken und es soll noch exakt ein Level weiter aufgeklappt werden u.s.w. (selbstverständlich soll die Tiefe insgesamt beliebig sein). Wenn man dann auf einen anderen Ast (z.B. Cat-2) klickt, wird der ursprüngliche natürlich wieder eingeklappt und der gewählte klappt sich jeweils um ein Level aus. Nun hab ich es nach etwas basteln zwar geschafft, eine Rekursion zu schreiben (Skript siehe unten), die mir den Baum ausgibt, allerdings sind alle Ebenen bereits ausgeklappt. Und genau das will ich ja nicht, da es bei z.B. 100 Unterkategorien schon sehr unübersichtlich wird. Was mir nicht geholfen hat, sind fertige Scripts alla Ulf Wendl, da hier die Originaldaten und das Handling zu verschieden sind. Hat jemand was passendes für mein Problem auf Lager oder ein paar Anregungen?? P.S.: Falls jemand den Artikel/Warengruppen-Editor vom Schlund-Shop kennen sollte - genau so solls nachher aussehen :-) >>>>>>>>> Skript on <<<<<<<<<< function get_AllCats($CatID=""){ if (empty($CatID)) { $sql = "SELECT CatID,CatPID,CatName from categories where CatPID is NULL"; } else { $sql = "SELECT CatID,CatPID,CatName from categories where CatPID = '$CatID'"; } $results = mysql_query($sql); if(empty($results)) { mysql_free_result($results); return false; } while ($row = mysql_fetch_array($results)){ $id = $row["CatID"]; $pid = $row["CatPID"]; echo get_CatLevel($id,0); echo '<img src="pics/spacer_short.gif" align="absmiddle"><img src="pics/fc_grau.gif" align="absmiddle"> '; echo "<font face='Arial' size=2><a href='$id'>"; echo get_CatNameFromID($id); echo "</a></font><br>"; get_AllCats($id); } return true; } get_AllCats(); >>>>>>>>> Skript off <<<<<<<<<< Vielen Dank im voraus Patrick
php::bar PHP Wiki - Listenarchive