![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 8.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam, korzystam z gotowego modułu (Vote It Up) pozwalającego na głosowanie użytkownikom odwiedzającym bloga.
Głosowanie odbywa się za pomocą kliknięcia plusa lub minusa, jeżeli jest się zalogowanym wszystko jest w porządku - gorzej jest wtedy gdy głosują goście. Problem polega na tym, że będąc nie zalogowanym i klikając szybko kilka lub nawet kilkanaście razy na plus/minus system zapisuję wszystkie kliknięcia dając możliwość manipulowania głosami. Funkcja realizująca głosowanie wygląda następująco: Kod function vote(obj, votelinkobj, aftervote, postID ,userID, baseURL) { currentobj = obj; voteobj = votelinkobj; aftervotetext = aftervote; var scripturl = baseURL+"/voteinterface.php?type=vote&tid=total&uid="+userID+"&pid="+postID+"&auth="+Math.random(); lg_AJAXrequest(scripturl); } Znalazłem rozwiązanie polegające na zmianie funkcji na: Kod var clicked = false; function vote(obj, votelinkobj, aftervote, postID ,userID, baseURL) { if (clicked == false) { currentobj = obj; voteobj = votelinkobj; aftervotetext = aftervote; var scripturl = baseURL+"/voteinterface.php?type=vote&tid=total&uid="+userID+"&pid="+postID+"&auth="+Math.random(); lg_AJAXrequest(scripturl); } clicked = true; } Jednak teraz, gdy gość zagłosuję na jakiś post musi odświeżyć stronę by móc zagłosować na inny. Myślę, że najlepiej byłoby gdyby funkcją odliczała czas po kliknięciu na plus/minus i powiedzmy po kilku sekundach (gdy głos zapiszę się już w bazie) pozwalała na kolejne kliknięcie, czy mógłby ktoś pomóc mi w napisaniu czegoś takiego? Ten post edytował the-sopel 22.09.2011, 14:16:09 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Możesz np.: utworzyć tablicę w której będziesz trzymał id postów na które już dany użytkownik oddał głos. Jeśli użytkownik chce zagłosować na dany post, a jego id znajduje się już w tablicy to nie pozwalasz mu na to kolejny raz.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 8.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam, o takiej możliwości wiedziałem przed założeniem tematu jednak wydaję mi się ona niezbyt funkcjonalna.
Jeżeli ktoś jest w stanie pomóc zapraszam do tematu w dziale ofert. Ten post edytował the-sopel 26.09.2011, 12:45:06 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 31 Dołączył: 30.03.2009 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Do każdego głosowania można zrobić ukryte pole z wartością np "0". Po kliknięciu JQ blokuje przycisk i sprawdza wartość ukrytego pola. Gdy jest wartość "0" dane przekazywane są na server. Wartość pola zwiększamy np o 1, przycisk zostaje odblokowany.
Tak można zrobić z każdym buttonem itp.(można dane zapisać w sesjach wtedy po odświeżeniu strony.........?) Ten post edytował celbarowicz 27.09.2011, 07:37:49 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 22:29 |