Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: star rating
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
AxZx
witam

moze ktos polecic jakis dobry plugin do jquery ktory potrafi zablokowac mozliwosc ponownego klikniecia po oddaniu jednego glosu?

pozdrawiam
kszychu
Nie ten dział, przenoszę.
nospor
ja uzywam tego:
http://www.fyneworks.com/jquery/star-rating/
aczkolwiek blokade klikow dorabiam sam. Jak ktos juz glosowal to nie pozwalam.
AxZx
no wlasnie ja tez tego uzywam i mam problem z zablokowaniem.
tam jest metoda callback, w ktorej metoda $.get przesylam do odpowiedniego kontrolera dane ktore ma zapisac albo nie zapisac (jezeli jest juz w sesji zapisany wynik dla danego usera).

ale problem w tym ze jak ktos juz raz zaglosuje to kliki gwiazdek sie nie blokuja i user moze wysylac requesty do podanego kontrolera - tam oczywiscie nic w bazie nie zmienia bo jest sesja, no ale jest to wkurzajace.

moglibysmy tutaj omowic sposob/rozwiazanie tego problemu?

ja mam taki kod:
Kod
<script type="text/javascript">
$(function(){
    $('#form_rating<?=$typeobj.$idobj?> > input[@type=radio]').rating({    
        required: true,
        callback: function(value){        
            var value = $('input[@name=rating<?=$typeobj.$idobj?>]').val();
            $.get('<?=url::site('rating/save/'.$typeobj.'/'.$idobj)?>/'+val, function(data){                                
                $('#rating_result<?=$typeobj.$idobj?>').html(data);                            
            });            
        }        
    });    
});
</script>
nospor
ja to zrobilem tak, ze jak ktos kliknie na gwiazdke to wysylam forma (przeladowuje) strone. Po przeladowaniu juz wyswietlam mu tylko wyni glosowania.

Ale ty mozesz w callbacku schowac star rating a po odebraniu ajaxa wyswietlic wynik glosowania. Tu chyba nie problemu.
AxZx
rozwazalem mozliwosc usuniecia tych gwiazdek i wyswietlenie tylko informacji o sredniej, liczbie glosow itp. ale chcialbym wykombinowac jednak cos takiego zeby byly te gwiazdki z wyswietlona srednia ocena ale zeby sie blokowaly. wiekszosc stron ktore maja star rating wlasnie tak to ma rozwiazane. tylko ze nigdzie nie ma takiego pluginu do jquery, wiekszosc nie opiera sie na jquery tylko czysty JS i operacje na obiekcie XHR. a po co tak skoro jquery ma to wszystko juz zaimplementowane?
ja niestety ne mam teraz czasu zeby pisac taki plugin, bo niestety musialbym poswiecic wiecej jako ze nie jestem specem w Js.
nospor
mozesz uzyc opcji readOnly, wowczas nie bedzie mozna klikac. Ale tę opcję ustawia sie przy inicjalizacji star rating, wiec bys musial przeladowa strone. Chyba ze na nowo bys zainicjowal.
AxZx
pomieszane to, slaby ten plugin.

kombinuje jakby wykorzystac do tego jeden widok, ale chyba sie nie da.

jak w jquery mozna cos zrobic cos w stylu:
Kod
$('#cont_rating<?=$typeobj.$idobj?>') = data;


to rozwiazanie odpada
Kod
$('#cont_rating<?=$typeobj.$idobj?>').html(data);

bo wtedy bede mial
Kod
<div id="cont_ratingpage1">
<div id="cont_ratingpage1"></div>
</div>
nospor
http://docs.jquery.com/Manipulation/replaceWith#content

A na przyszlosc z takimi pytaniami wal do manuala jquery winksmiley.jpg
AxZx
dzieki wielkie:)
udalo sie.

a tutaj http://www.visualjquery.com/1.1.2.html
o tym nie ma, a korzystam z tego czesciej niz z manuala o ktorym chwilowo zapomnialem:)
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-2024 Invision Power Services, Inc.