![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 4.05.2019 Skąd: PHP5.6 Ostrzeżenie: (0%) ![]() ![]() |
jQuery jest trudniejsze i bardziej skomplikowane niż się wydawało, a wydawało się naprawdę trudne... (IMG:style_emoticons/default/ohno-smiley.gif)
Pomijam fakt, że w sieci brak zgrabnego gotowca (jQuery, AJAX, PHP5.6) najprostszego systemu głosowania +/- 1 dla np. komentarza. (albo nie umiem szukać) Na podstawie kilkunastu różnych kodów z Internetu zlepiłem jeden funkcjonalny skrypt, który (po kliknięciu) ma za zadanie: 1. przyznać ocenę +1 (tj. zwiększyć zawczasu, sztucznie licznik aktualnej oceny +1) a) wysłać ID_komentarza z rodzajem_oceny(+/-) do PHP i tam po weryfikacji zrobić Update SQL (po stronie PHP brak problemów) 2. sformatować kolorystycznie kliknięty button "plus" oraz usunąć możliwość kliknięcia w button "minus" za pomocą display:none; 3. wrzucić ocenionego komentarza (tj. ID_komentarza) do localStorage, żeby user wiedział co już ocenił. 4. sprawdzić ID_komentarza z localStorage i jeśli istnieje, to sformatować kolorystycznie na stałe. (tj. do czasu usunięcia pamięci lokalnej www) Generalnie wszystko działa dla jednego komentarza. Siedziałem nad tym dwa dni i jestem pewny, że można to zrobić znacznie lepiej, ale składnia i jej logika mnie dobija więc będę wdzięczny za naprowadzenie w jaki sposób edytować kod, aby wrzucić w jakąś (IMG:style_emoticons/default/brzydal.gif) pętle, która automatycznie pobiera i sprawdza (tj. formatuje jeśli oceniono) wszystkie wyświetlone komentarze (tj. ID_komentarza).
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 4.05.2019 Skąd: PHP5.6 Ostrzeżenie: (0%) ![]() ![]() |
woow! @aras785, wielkie dzięki za poświęcony czas! nie testowałem Twojego rozwiązania, ale na pierwszy rzut oka wygląda konkretnie w porównaniu do moich wypocin. Mój problem przed chwilą (raczej) rozwiązałem w taki sposób, że inaczej zapisuje na localStorage, a na końcu inaczej odczytuje i generalnie na pierwsze testy wszystko hula jak należy:
Ze wstępnych oględzin amatora wygląda na to, że jedna klasa (.commented) obsługuje formatowanie końcowe dla obu kliknięć, co defacto będzie prowadziło do błędnego kolorowania dla plusa bądź minusa - będę musiał to rozszyfrować aby dodać drugą klase. (IMG:style_emoticons/default/worriedsmiley.gif) Zapisujesz też więcej danych w tablicy co jest jak najbardziej spoko, bo można zamknąć się w jednym kluczu, a później łatwo zweryfikować ocenę komentarza bez dodatkowego kombinowania z dwoma kluczami(+/-):
moje rozwiązanie było lżejsze zważając na limit 5242878 znaków dla jednego klucza, ale musiałbym kombinować z dwoma kluczami. ^^
Skrócę Twoją formę do: {a:"d",i:"1"} i z przyjemnością przygarnę cały wzór pod grunt do budowy. (IMG:style_emoticons/default/biggrin.gif) A tak jeszcze z ciekawości odnośnie wydajności aplikacji po stronie SQL & PHP.... 1. Lepiej za każdym razem Insertować na nowo i później pojedynczo zliczać każdą ocenę dla ID_kom 2. Czy lepiej Updatować jeden dany ID_kom o oceny? Osobiście obstaje przy rozwiązaniu 2. ale wole się upewnić. Niby insert jest szybszy i można do niego dodać id_usera, który głosował co jest na plus przy statystykach, ale z drugiej strony będzie więcej danych i trzeba będzie liczyć by uzyskać sume ocen, a to też będzie swoje kosztować. Jeszcze raz wielkie dzięki! Ten post edytował phpuser88 7.05.2022, 04:47:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 13:02 |