Перейти к содержимому


Партнерская программа Kredov

Помогите написать сценарий!

#1 ReadHead

ReadHead
  • Пользователь
  • 5 сообщений
  • Репутация: 0
0

Отправлено 09 Ноябрь 2012 - 21:26

Я хотел бы организовать у себя на сайте рейтинговую систему. На рисунке видны 5 звезд белым цветом, при наведении курсора они загораются соответственно счету (например, 3я звезда - горят три звезды). Нужен такой сценарий, что бы при нажатии на какую либо из звезд левой кнопкой мышки, на сервере записывались следующие данные:
1. плюсовались общее количество звезд
2. считалось количество голосов в общем
3. общее количество звезд делилось на количество голосов и полученное число выводилось бы в качестве среднего рейтинга на странице, опять же в виде звезд.

Но, для начало, конечно хотя бы первые два пункта выполнить...Занимаюсь этим уже неделю, а вообще опыта не на много больше. Подскажите пожалуйста, как сделать.

вот код html элемента со звездами:
 

<dl class="star-rating">
<dt>Рейтинг:</dt>
<ol>
<li><a href="images/stars.png" class="star1"> Ужасно</a></li>
<li><a href="images/stars.png" class="star2"> Плохо</a></li>
<li><a href="images/stars.png" class="star3"> Нормально</a></li>
<li><a href="images/stars.png" class="star4"> Хорошо</a></li>
<li><a href="images/stars.png" class="star5"> Отлично</a></li>
</ol>
</dl>

также с помощью CSS настроены стили, их приводить тут думаю бессмысленно.

имеется php скрипт который просто прибавляет +1 при переходе по ссылке. Я конечно не хотел бы чтоб при нажатии на звезду страница перезагружалась, но если по другому скрипт не выполнить то пусть будет так:

 

<?php

$f=fopen("rating.php","a+");
flock($f,LOCK_EX);
$count=fread($f,100);
@$count++;
ftruncate($f,0);
fwrite($f,$count);
fflush($f);
flock($f,LOCK_UN);
fclose($f);

?>


данный выводит результат:


<?php

$s=file("rating.php"); echo "рейтинг: $s[0]"; ?>

получается нужно каждой звезде присвоить свою переменную, и в каждом случае прибавлять соответствующее число (например, при нажатии трех звезд к общей сумме прибавляется 3 и в то же время считается факт нажатия (+1) к другой сумме. вот. как это правильно сделать? Заранее спасибо!

Прикрепленные изображения

  • 2012-11-09_220101.jpg

 

 

  • 0

#2 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 28 Ноябрь 2012 - 23:03

Как то все все извращенно получается у Вас. не проще ли сохранять данные в базе, а запрос о количестве звезд обрабатывать с помощью ajax ?
Если тема еще актуальна, отпишитесь, попробую более подробно рассказать
  • 0


Оформление форума – IPBSkins.ru