Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Drzewo
Forum PHP.pl > Forum > Przedszkole
cornholio666
Witam

Oto baza przechowująca dane drzewa



Korzystam z PEAR TREE i mam taki kod:

  1. <?php
  2. function tree($tree,$id){
  3.  
  4. foreach($tree->getChildren($id) as $el){
  5.  
  6.  
  7. echo "<ul>";
  8. echo "<li><a href="index.php?id=".$el["id"]."">".$el["name"]."</a></li>";
  9.  
  10.  tree($tree,$el["id"]);
  11.  }
  12.  
  13.  
  14. echo "</ul>";
  15. }
  16. }
  17.  
  18. tree($tree,10); // 10 - to root
  19. ?>


Pokazuje mi całe rozwinięte drzewo a mi chodzi o to żeby dopiero po kliknieciu w określony element drzewa wyświetlały się jego dzieci ale tylko o "jeden poziom głębokości" itd...

Jakieś wskazówki?
^bmb
Cytat(cornholio666 @ 7.06.2007, 12:56:11 ) *
Pokazuje mi całe rozwinięte drzewo a mi chodzi o to żeby dopiero po kliknieciu w określony element drzewa wyświetlały się jego dzieci ale tylko o "jeden poziom głębokości" itd...



- do tree wchodzi parametr strony kliknietej

- sprawdzasz w petli parenty stron dopoki nie bedzie parent 10(root), a kolejne id stron z tej galezi wrzucasz do tablicy

- przy wyswietlaniu drukujesz tylko caly pierwszy poziom a podczas kolejnych poziomow sprawdzasz czy ich id jest w tablicy (in_array) i tylko w takim przypadku pokazujesz.

Mam nadzieje ze w miare jasno to przedstawilem
cornholio666
Coś nie mogę sobie poradzić:

  1. <?php
  2. function tree($tree,$id){
  3.  
  4. $ParentsIDs = $tree->getParentsIds($id); // tablica z ID parentów
  5.  
  6. echo "<ul>";  
  7.  
  8.  foreach($tree->getChildren($id) as $el){
  9.  
  10.  
  11.  echo "<li><a href="index.php?id=".$el["id"]."">".$el["name"]."</a></li>";
  12.  
  13. if(in_array($el["id"],$ParentsIDs)){
  14.  
  15. tree($tree,$el["id"]);
  16. }
  17.  
  18.  
  19. }
  20.  
  21. echo "</ul>";
  22.  }
  23. ?>


Wydaje mi się że tu jest źle:

  1. <?php
  2. foreach($tree->getChildren($id) as $el){
  3. ?>


Nie wiem jak zrobić żeby za każdym razem czytał mi od roota i schodził w dół
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.