Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Edycja funkcji głosowania
the-sopel
post 22.09.2011, 13:34:10
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
Go to the top of the page
+Quote Post
Ziem
post 22.09.2011, 16:07:15
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.
Go to the top of the page
+Quote Post
the-sopel
post 26.09.2011, 12:43:24
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
Go to the top of the page
+Quote Post
celbarowicz
post 27.09.2011, 07:36:36
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 22:29