Как создать простое рассмотрение и пятизвездочную систему оценки? [закрытый]

21
задан DerpyNerd 21 August 2018 в 12:56
поделиться

6 ответов

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

Не нужно перезагружать страницу при нажатии на звездочку (на самом деле не нужно)
Ajax - ваш друг, я сделал где представляет собой звездочку, а функция submitRating () использовала Ajax для передачи моей оценки (1/5) в server, сервер сохраняет рейтинг (и присваивает пользователю, который поставил оценку), пересчитывает новую среднюю оценку и отправляет результаты обратно в формате JSON.

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

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

20
ответ дан 29 November 2019 в 21:41
поделиться

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

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

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

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

3
ответ дан 29 November 2019 в 21:41
поделиться

Вот ответ на аналогичный вопрос, и это должно стать отличным началом.

Превратите число в отображение звездного рейтинга с помощью jQuery и CSS

2
ответ дан 29 November 2019 в 21:41
поделиться

Это не особая конструкция, по крайней мере, для моих несколько уставших глаз. Это говорит о присвоении результата

 (b or {}) 

a.

Так, если b является значением False, a получает {} (пустой словарный литерал), в противном случае получает значение b.

-121--4648288-

Вам бы пришлось сделать этот путь:

$('option:contains("Red")', '#c')[0].selected = true

EDIT

@ Tomalak

Если метки являются взаимоисключающими, вам нужно переписать селектор:

$.fn.labselect = function(str) {
    $('option', this).filter(function() {
       return $(this).text() == str;
    })[0].selected = true;

    return this;
};

// Use it like this
$('#c').labselect('Red');
-121--4213356-

Чтобы иметь хороший звездно-щелкающий контроль, вам нужен javascript Так что вы должны сделать jQuery.

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

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

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

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

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

0
ответ дан 29 November 2019 в 21:41
поделиться

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

0
ответ дан 29 November 2019 в 21:41
поделиться

Да, ваш подход звучит идеально. есть несколько частей:

звезды с hover эффектом:

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

prototype: 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/

0
ответ дан 29 November 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: