Pytanie: jak zrobić listę rozwijaną bez przeładowania strony nie znając ilości dzieci w głąb, żeby program sam wiedział gdzie postawić plus przy kimś kogo można rozwinąć, a minus jeśli jest ostatni. Poniżej przedstawiam mój kod wykonujący to zadanie ale tylko pokazujący pierwsze dzieci danego id_osoby. Czy powinienem napisać funkcję w jakiejś technologii do zarządzania plusem? Jeśli tak to skąd mam pobierać dane, że akurat "tego" plusa rozwijam? Czy da się to w ogóle zrobić?
<?php $i=0; { $a[$i++]=$res; } //print_r($a); $m=$_SESSION['id_osoby']; $ile=0; $numer = 0; $poziom=0;$n=0; $x[$numer] = $m; //echo $x[$nymer][$poziom]; //$p[$poziom]=array(); //$n=1; //$p[$poziom]=$n; //print_r ($x[$numer]); //while ($x[$numer]!=0) //{ // $n=$n+1; function sprawdz(){ $i=0; { $a[$i++]=$res; } $m=$_SESSION['osoba']; $u=0; for($j=1; $j<=4;$j++) { if($a[$m-1][$j]!=0){ $u++; //echo $u; } }$_SESSION['u']=$u; } for($j=1; $j<=4;$j++) { if($a[$m-1][$j]!=0) {//echo $a[$m-1][$j]; $osoba=$a[$m-1][$j]; $_SESSION['osoba']=$osoba; //$osoba1=$a[$m-1][0]; //$result1 = mysql_query("SELECT imie, nazwisko FROM user WHERE id_osoby='$osoba1'"); //$row1 = mysql_fetch_array($result1); { sprawdz(); if ($_SESSION['u']>0){ } else{ } }else break; $x[]=$a[$m-1][$j]; // $p[]=$n; } else break; } $poziom++; $n=$p[$poziom]; $numer++; $m=$x[$numer]; // } ?>
Przykładowo tabela drzewo zawiera:
id_osoby 1 2 3 4 kolumny
1 || 2 3 4 5
2 || 6 7 0 0
3 || 0 0 0 0
4 || 0 0 0 0
5 || 0 0 0 0
6 || 0 0 0 0
7 || 0 0 0 0
....
Chodzi mi o listę rozwijaną tych pierwszych czterech osób, o ile istnieją. Czyli jeśli odpalam skrypt jako id_osoby==1, wtedy powinienem uzyskać jako wynik 4 numerki i jeden plus przy dwójce. I teraz klikając na dwójkę żeby dalej rozwijało o ile coś w bazie jest. Funkcja sprawdź, sprawdza czy znaleziona(badana) osoba ma pod sobą kogoś, jak ma to powinna wstawić "plus" jeżeli nikogo nie ma to minus. i Tam gdzie jest plus żeby się rozwijało dalej, oczywiście po naciśnięciu plusa, Tylko pierwszy poziom chcę aby był wykonywany po wejściu w skrypt. Wykomentowany kod zawiera pętlę, która pokazuje wszystkie zależności danego id_osoby, jednak tutaj chcę abym ja mógł rozwijać o ile chcę i który węzeł chcę. Nie szukam gotowych rozwiązań tylko proszę o powiedzmy nakierowanie z czego powinienem skorzystać, by zamierzony efekt uzyskać. Jestem samoukiem i uczę się języków głównie poprzez praktykę wymyślając sobie jakieś projekty i tutaj niestety stanąłem w miejscu. Oczywiście przedstawiony kod jest poprawny w działaniu, na pewno nie jest to boski styl pisania., jednak efekt pierwszego poziomu uzyskałem, gorzej z rozwinięciem kolejnego plusika:) Z góry dziękuję za pomoc
Pozdrawiam
Paweł