A więc. Mam sobie funkcje tworzącą wielopoziomowe menu do n. Lecz muszę zrobić aby było ono rozwijane bo kliknięciu w kategorie (link). Np.
Kod
1.kategoria
2.kategoria2

Kliknie 1.kategoria to mam np.
Kod
1.kategoria
- pod kategoria dla kategoria
2.kategoria2

Przyczym wszystkie kategorie to linki więc nie wchodzi w grę żadne JS.
Poradziłem sobie z tym menu do pewnego stopnia tzn. menu się rozwija lecz gdy nacisne np. kategoria2 to menu wygląda tak:
Kod
1.kategoria
- pod kategoria dla kategoria
2.kategoria2
- pod kategoria dla kategoria2

Zamiast:
Kod
1.kategoria
2.kategoria2
- pod kategoria dla kategoria2


Podam kod generujący zwykłe nie rozwijane menu i ten wadliwy który generuje nie do końca dobrze rozwijane menu.

Nie rozwijane:
  1. <?php
  2. function menu_jedna($id_nadrzedne,$id=0){
  3. global $rzad , $linki , $menu ,$u, $dane ;
  4. if ($id!=0) $query = 'select id, kategoria,nazwa,adres_manualny,adres from podstrony where kategoria='.$id_nadrzedne.' and id = '.$id;
  5. else $query = 'select id, kategoria,nazwa,adres_manualny,adres from podstrony where kategoria='.$id_nadrzedne.'';
  6. $result = mysql_query($query);
  7. while($row = mysql_fetch_assoc($result)){
  8. ++$o;
  9. $adres='';
  10. $nazwa = $row['nazwa'];
  11. $id = $row['id'];
  12. $adres_manualny = $row['adres_manualny'];
  13. $adres = $row['adres'];
  14. $kategoria = $row['kategoria'];
  15. $kategoria_r='p_'.$kategoria;
  16. if ($$kategoria == 0){ ++$rzad; $$kategoria_r=$rzad; }
  17. ++$$kategoria;
  18. if ($kategoria==0) { echo $o.'. '; $rzad=0;}
  19. else {
  20. for($i=0;$i<$$kategoria_r;++$i){
  21. echo '&nbsp;';
  22. }
  23. echo '- ';
  24. }
  25. echo '<a href="'.$www.'/zawi%20cms/'.$adres.'">'.$nazwa.'</a><br/>'; 
  26. menu_jedna($row['id']);
  27. }
  28. }
  29.  
  30. menu_jedna(0)
  31. ?>


Generujące rozwijane (wadliwe)

  1. <?php
  2. function podkategoria($id_nadrzedne,$spacje){
  3. global $l ;
  4. $query = 'select id, kategoria,nazwa,adres_manualny,adres from podstrony where kategoria='.$id_nadrzedne.'';
  5. $result = mysql_query($query);
  6. while($row = mysql_fetch_assoc($result)){
  7. $nazwa = $row['nazwa'];
  8. $id2 = $row['id'];
  9. $adres_manualny = $row['adres_manualny'];
  10. $adres = $row['adres'];
  11. $kategoria = $row['kategoria'];
  12. $kategoria_r='p_'.$kategoria;
  13. if ($$kategoria == 0){ ++$rzad; $$kategoria_r=$rzad; }
  14. ++$$kategoria;
  15. if ($kategoria==0) { echo $o.'. '; $rzad=0;}
  16. else {
  17. for($i=0;$i<$spacje;++$i){
  18. echo '&nbsp;';
  19. }
  20. echo '- ';
  21. }
  22. echo '<a href="'.$www.'/zawi%20cms/'.$adres.'">'.$nazwa.','.$id2.','.$_GET['pop'].','.$l.'</a><br/>'; 
  23. $q = mysql_query('select count(id) from podstrony where kategoria='.$id2);
  24. list($czy) = mysql_fetch_row($q);
  25.  
  26. if ($czy!=0 AND $id2==$_GET['site']) { podkategoria($_GET['site']); } 
  27.  
  28. }
  29. }
  30.  
  31.  
  32.  
  33. function menu_rozwij($id_nadrzedne=0){
  34. global $rzad , $dane, $k, $poprzedni,$h,$j ;
  35.  
  36. $query = 'select id, kategoria,nazwa,adres_manualny,adres from podstrony where kategoria='.$id_nadrzedne.'';
  37. $result = mysql_query($query);
  38.  
  39. while($row = mysql_fetch_assoc($result)){
  40. ++$o;
  41. $nazwa = $row['nazwa'];
  42. $id2 = $row['id'];
  43. $adres_manualny = $row['adres_manualny'];
  44. $adres = $row['adres'];
  45. $kategoria = $row['kategoria'];
  46. $kategoria_r='p_'.$kategoria;
  47. if ($$kategoria == 0){ ++$rzad; $$kategoria_r=$rzad; }
  48. ++$$kategoria;
  49. if ($kategoria==0) { echo $o.'. '; $rzad=0;}
  50. else {
  51. for($i=0;$i<$$kategoria_r;++$i){
  52. echo '&nbsp;';
  53. }
  54. echo '- ';
  55. }
  56. ++$j;
  57.  $q = mysql_query('select count(id) from podstrony where kategoria='.$id2);
  58. list($czy) = mysql_fetch_row($q);
  59. echo '<a href="'.$www.'/zawi%20cms/'.$adres.'">'.$nazwa.','.$id2.','.$_GET['site'].','.$j.'</a><br/>';
  60.  
  61. if ($czy!=0 AND $id2==$_GET['site']) podkategoria($id2,++$$kategoria_r); 
  62. else if ($czy!=) menu_rozwij($id2) ;
  63.  
  64. menu_rozwij(0);
  65. }
  66. }
  67. ?>



Bardzo proszę o pomoc i z góry dziękuję.

BTW. $_GET['site'] to id wybranej kategorii/podstrony.

Pozdrawiam!