Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Prototype] Sortowanie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Largo
Witam,

Mam pewien problem i bynajmniej nie dotyczy samego działania, a możliwości jego wykonania. Mam tabelę z danymi i chcę posortować takie dane jak:

  • Data
  • Kwotę
  • Od kogo

Gdzie leży problem? Mam napisaną publiczną metodę do wyświetlania tych logów, korzystam z biblioteki Prototype, mam zapewne do napisania Ajax'owy handler, który w zależności od kliknięcia będzie aktualizować dane w bazie, to dam radę zrobić i nie będzie z tym problemu. Problem pojawia się jak zaktualizować wyniki na stronie? Mam teoretyczny dostępny metody poprzez handler Ajax, ale co mi to da? Chyba muszę pobrać dane dla Prototype i w nim aktualizować komórki? Dane mogę odzyskać w ten sposób, że wyślę je jako tablica poprzez JSON i w odpowiedzi zaktualizuję, czy w ten sposób powinienem działać?

PS. A ostatni problem jest dosyć trywialny ^^ Datę i kwotę posortuję ( ujemną raczej też ), ale jak posortować ludzi, kiedy w ten skład wchodzi jeszcze "automat", czyli transakcja z wykorzystaniem jedynie nadawcy? Powinien sortować o A do Z i System, a potem System Z do A :-) Macie pomysł?

Pozdrawiam,
Largo

Witam,

OK, udało mi się wysłać nowe dane pobierane z bazy danych do skryptu w JS. Wszystko pokazuje dobrze, ale nie mam pojęcia teraz jak zastąpić nowe wyniki? Nie mogę odwołać się do funkcji jej pokazującej, bo ona automatycznie pokaże nowe dane. Ma ktoś pomysł?

Czy naprawdę nikt nie pomoże? Chodzi mi o taki schemat - http://forums.d2jsp.org/gold.php ( dane do logowania podam na PW, nie chcę publicznie ). Oni to zrobili na zasadzie tablic w JavaScript, ale chyba da się inaczej? Klikając w link powinno pobierać dane i je aktualizować, ale Ci mają gotową tablicę z wynikami, czyli prawie nic nie trzeba aktualizować. Da się to inaczej wykonać, że np. pobieramy dane odpowiednio sformatowane to prezentacji i takie do sortowania?
karolrynio
to mozesz np. usunac wszystkie wiersze z tabeli i pozniej dodac nowe...
albo jeszcze prostszy (moim zdaniem sposob) uzyc Ajax.Updater na wszystkich elementach i w php generowac gotowa tabele....
Largo
Witaj,

Ajax.Updater odpada, ponieważ nie ładuje się tam plików w postaci HTML, one są dostarczane via klasę, więc to odpada.
Usuwanie wszystkich wierszy i dodawania nowych? A co, jeżeli wystąpi jakikolwiek błąd? Oni to rozwiązali na zasadzie tablicy, którą aktualizują bez potrzeby odpytywania MySQL o nowe wyniki. Mimo to, nie chciałbym umieszczać na stronie tablicy danych, ale jeżeli nie ma innego logicznego wyjścia z sytuacji, może to będzie najlepsze?
karolrynio
Juz wiem jak to dziala na podanej przez Ciebie stronie:
jest tablica z danymi i na jej podstawie generowana jest tabela.
"Odswierzanie" polega na:
- sortowaniu tablicy wedlug jakiegos kryterium
- usuwaniu wszystkich wierszy z tabeli
- wstawianiu wierszy w kolejnosci w jakiej zostaly posortowane w punkcie 1

--------------------------------------------------------------------------------

Wiec proponuje rozwiazania problemu:
1. Zaproponowany wczesniej Ajax.Updater: ladujesz juz czysty HTML do tabeli
2. Dane zwrocone przez Ajaxa wyswietlasz w następujący sposób:
- usuwasz wszystkie wiersze z tabeli (tak jest robione na stronie którą pokazałeś)
- dodajesz kolejne wiersze zwrócone przez Ajaxa
3. Tak jak było rozwiązane na stronie którą pokazałeś:
- tworzysz tablice do której ładujesz wszystkie dane
- wyświetlasz według domyślnego sortowania
- po kliknięciu sortujesz tablicę (według danego kryterium)
- usuwasz wszystkie wiersze z tabeli
- wstawiasz nowe juz posortowane


Ja osobiście wybrałbym sposób 1, bo wystarczy w wyniku wywołania Ajaxa zwrócić czysty HTML i masz wszystko załatwione bez zbednego głowienia się jak wyświetlić wiersze itp. Ale wybór należy do Ciebie.
Largo
Cytat(karolrynio @ 17.11.2009, 20:30:31 ) *
Juz wiem jak to dziala na podanej przez Ciebie stronie:
jest tablica z danymi i na jej podstawie generowana jest tabela.
"Odswierzanie" polega na:
- sortowaniu tablicy wedlug jakiegos kryterium
- usuwaniu wszystkich wierszy z tabeli
- wstawianiu wierszy w kolejnosci w jakiej zostaly posortowane w punkcie 1

--------------------------------------------------------------------------------

Wiec proponuje rozwiazania problemu:
1. Zaproponowany wczesniej Ajax.Updater: ladujesz juz czysty HTML do tabeli
2. Dane zwrocone przez Ajaxa wyswietlasz w następujący sposób:
- usuwasz wszystkie wiersze z tabeli (tak jest robione na stronie którą pokazałeś)
- dodajesz kolejne wiersze zwrócone przez Ajaxa
3. Tak jak było rozwiązane na stronie którą pokazałeś:
- tworzysz tablice do której ładujesz wszystkie dane
- wyświetlasz według domyślnego sortowania
- po kliknięciu sortujesz tablicę (według danego kryterium)
- usuwasz wszystkie wiersze z tabeli
- wstawiasz nowe juz posortowane


Ja osobiście wybrałbym sposób 1, bo wystarczy w wyniku wywołania Ajaxa zwrócić czysty HTML i masz wszystko załatwione bez zbednego głowienia się jak wyświetlić wiersze itp. Ale wybór należy do Ciebie.


Witaj,

Dziękuje za rady, nie znam się na JavaScript, jak Ty :-) Nie zauważyłem tam usuwania, ale nazewnictwo mają bardzo ciekawe... Czy pierwsze rozwiązanie się uda? Nie sądzę... Ja mam to w 2 funkcjach dotyczących parsowania wyników. Jedna składa się z budowy tabeli i całego jej designu. W środku istnieje wbudowana iteracja foreach i w niej elementy są wyświetlane, ale całą logikę mam w PHP, chyba będę musiał zamienić kodzik na metodę :-)

Rozważę to ze znajomym i podejmiemy decyzję, ale naprawdę dziękuje Ci za pomoc. Czy mógłbym ewentualnie prosić o kontakt szczegółowy na PW?

Pozdrawiam,
Largo
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.