Подтвердить что ты не робот

Как создать базовую и простую 5-звездочную рейтинговую систему?

Я очень новичок в веб-технологиях, и это в основном для долгосрочного проекта, над которым работает моя команда. Мы работаем над сайтом обзора продуктов питания.

На данный момент я не совсем уверен, как реализовать простую 5-звездочную рейтинговую систему. Должен ли я использовать серверный язык, такой как PHP или клиентский, например Javascript (w/JQuery). Оглядываясь вокруг, кажется, что JQuery больше подходит для этого? Или это будет комбинация обоих?

То, что я ищу, касается функциональности:

  • Звезды загораются, когда мышь колеблется.
  • Страница не должна перезагружаться, когда звезда нажата (не нужна)
  • Некоторое среднее значение, показанное рядом с звезды
  • Рейтинг должен храниться где-то в базе данных MySQL (это хорошая идея?)

Я действительно извиняюсь, если вопрос звучит расплывчато и глупо, я не очень понимаю, как это реализовать, и я пробовал искать. Если у вас есть какие-либо вопросы, сообщите мне.

Большое спасибо.

4b9b3361

Ответ 1

Звезды загораются, когда мышь колеблется
Там есть блестящий учебник по веб-дизайну для 5-звездной рейтинговой системы: http://rog.ie/blog/css-star-rater. Это чисто CSS, поэтому нет необходимости в Javascripting.

Страница не должна перезагружаться при нажатии на звезду (не требуется)
Ajax - ваш друг, я должен был иметь <a class="one_star" href="javascript: submitRating(1, 5)">, где <a> представлял звезду, а функция submitRating() использовала Ajax для передачи моего рейтинга (1/5) на сервер, сервер хранилища рейтинг (и назначает пользователя, присвоившего рейтинг), и пересчитывает новый средний рейтинг и возвращает результаты в формате JSON.

Какой-то средний показатель, показанный рядом с звездами Легко. Напишите SQL script, который на основе идентификатора продукта принимает сумму среднего рейтинга (т.е. 1/5 + 2/5 + 4/5 и т.д.), Делит его (сумму) на общую сумму рейтингов и умножает ее на 100. Верните значение обратно на сервер и с сервера обратно на клиент.

Рейтинг должен храниться где-то в базе данных MySQL (это хорошая идея?)
Я использую MySQL для этого, и он работает как шарм. Любые системы БД прекрасно.

Ответ 2

Звезды загораются, когда мышь колеблется
Простой, есть изображение для желтой звезды и изображение для белой звезды. Когда звезда витает, все звезды слева имеют свои "src", которые меняют на желтую звезду, а все звезды справа имеют свои srcs, сменившиеся на белую звезду.

Страница не перезагружается при нажатии кнопки
Посмотрите на Ajax/XHR
http://en.wikipedia.org/wiki/Ajax_(programming)
Подсказка: Имейте файл .php с именем vote.php и передайте ему идентификатор вашей пищи и рейтинг, указанный пользователем.

Какой-то средний показатель между звездами
Большинство веб-сайтов показывают только 0%, 50% и 100% звезд... пользователи не будут волноваться, если они не получат "точную точность"

Рейтинг должен храниться в базе данных MySQL
Любая система базы данных в порядке. Но да, вы, вероятно, захотите использовать базу данных SQL для этого

Ответ 4

Да, ты идешь, кажется, прекрасно. есть несколько частей:

звезды с эффектом зависания:

jquery: http://www.fyneworks.com/jquery/star-rating/

прототип: http://www.fyneworks.com/jquery/star-rating/

css: http://www.henryhoffman.com/css-star-rating-tutorial.html

onclick может вызывать вызов ajax с jquery: http://api.jquery.com/jQuery.post/

то на стороне сервера его можно сохранить в таблице рейтинга

Здесь приведен более длинный пример:

http://webtint.net/tutorials/5-star-rating-system-in-php-mysql-and-jquery/

Ответ 5

Комбинация JS и PHP - это путь (если PHP - ваш выбранный серверный язык). JQuery - это хороший способ легко реализовать своего рода главную роль, я однажды разработал это для одного из моих сайтов, которые я позже удалил. Это была простая вещь, которая включала события, связанные с 5 изображениями. Если щелкнуть, если это "id 4", он отправит это как голосование пользователя, использующего функцию jQuery.post(), в PHP script, который отметил пользователя и записал голосование в базе данных MySQL, если они имели "Уже проголосовали".

Ответ 6

Чтобы иметь хороший контроль над звездами, да, вам нужен javascript. Поэтому вы должны сделать jQuery.

Да, вы захотите хранить данные в базе данных. Вы можете использовать для этого PHP и MySQL.

Учитывая, что это назначение класса, это много для реализации. Рассмотрите обман с помощью существующей CMS. Drupal, в частности, обладает функциональностью, аналогичной той, о которой вы просите. Вам не нужно многому научиться на Drupal, просто купите книгу "Использование Drupal". Глава 4 покажет вам, как:

... создайте веб-сайт обзора продуктов сообщества, используя... и модули Fivestar, предоставляющие виджет рейтинга.

Drupal основан на PHP и использует MySQL как свою базу данных, поэтому он, похоже, соответствует тому, куда вы направляетесь. Может потребоваться немного, чтобы запустить Drupal... но тогда вы можете легко перейти к главе 4.

Если учитель настаивает на написании кода, Drupal является открытым исходным кодом и его легко добавлять пользовательские модули.