Как создать базовую и простую 5-звездочную рейтинговую систему?
Я очень новичок в веб-технологиях, и это в основном для долгосрочного проекта, над которым работает моя команда. Мы работаем над сайтом обзора продуктов питания.
На данный момент я не совсем уверен, как реализовать простую 5-звездочную рейтинговую систему. Должен ли я использовать серверный язык, такой как PHP или клиентский, например Javascript (w/JQuery). Оглядываясь вокруг, кажется, что JQuery больше подходит для этого? Или это будет комбинация обоих?
То, что я ищу, касается функциональности:
- Звезды загораются, когда мышь колеблется.
- Страница не должна перезагружаться, когда
звезда нажата (не нужна)
- Некоторое среднее значение, показанное рядом с
звезды
- Рейтинг должен храниться где-то в базе данных MySQL (это хорошая идея?)
Я действительно извиняюсь, если вопрос звучит расплывчато и глупо, я не очень понимаю, как это реализовать, и я пробовал искать. Если у вас есть какие-либо вопросы, сообщите мне.
Большое спасибо.
Ответы
Ответ 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 для этого
Ответ 3
Здесь ответ на аналогичный вопрос и должен стать отличным началом.
Поверните номер в список звезд с помощью jQuery и CSS
Ответ 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 является открытым исходным кодом и его легко добавлять пользовательские модули.