Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Звездный рейтинг своими руками


Автор: gcc 23.1.2010, 20:28
есть статья:
http://ruseller.com/lessons.php?rub=32&id=467

только там написано в комментариях что оно не работает


вопрос, кто как делал это "звездное голосование", чтобы мышкой выбрать количество балов и чтобы припросмотре выводилось среднее значение сколько балов среднее, и нужно еще таблицу создаать mysql, я так понимаю  |всего балов|среднее|количество_голосовавших|


вообще, как это делается? просто, как эти звездочки сделать на jquery, не понимаю...

Автор: Evghenusi 24.1.2010, 19:44
если в теории тебя интересует, то конечно же таблица в mysql, где поля "количество голосовавших", и во сколько каждый оценил "статью"

из базы выводишь значения, на странице высчитываешь среднее, и заносишь в скрипт который показывает оценку

что-то типа того  smile 

Автор: gcc 22.2.2010, 12:10
нашел

http://php.scripts.psu.edu/rja171/widgets/rating.php - этот на jquery
вот ещё один - http://www.grafxsoftware.com/product.php?id=8


=====

не понимаю алгоритм, как выводить по рейтингу?

нужно выводить у того у кого больше среднее значение или у кого больше всего балов или у кого больше всего проголосовало?

например, есть всего 5 баллов

1) есть элемент на который проголосовало 1 чел и поставил 5 баллов (средний балл 5 )

2) есть элемент у которого 100 человек, но средний балл 4


как выводить по ретйингу, выше будет первый вариант где проголосовал 1 человек? (но это не чесно, так как в другом проголосовало больше 100 чел.)

Автор: Wolf1994 22.2.2010, 14:34
Логично сортировать по количеству человек умноженному на средний балл.

Автор: gcc 22.2.2010, 22:06
Wolf1994, точно не знал...


еще можно умножить и на количество баллов... наверное...



но во всех голосовалок веде так стоит

Код

$db = get_votes();
$db['votes']++;
$db['sum'] += $vote;
$db['avg'] = sprintf('%01.2f', $db['sum'] / $db['votes']);




Автор: gcc 23.2.2010, 13:14
Wolf1994,  кстате, это тоже плохой вариант, может быть можно как-то среднее экспотенциальное вычисисть.... (если такое можно smile )

я пока остановился: лучше всего учитывать все голоса за 3 месяц... (в реальном времени учитывать)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)