21

我对网络技术非常陌生,这基本上是我的团队正在从事的一个学期项目。我们正在开发一个食品评论网站。

到目前为止,我不太确定如何实现一个简单的 5 星评级系统。我应该使用像 PHP 这样的服务器端语言还是像 Javascript(w/JQuery)这样的客户端语言。环顾四周似乎JQuery更适合这个?还是两者兼而有之?

就功能而言,我正在寻找的是:

  • 鼠标悬停时星星会亮起
  • 单击星标时不必重新加载页面(实际上不需要)
  • 在星星旁边显示某种平均值
  • 评级必须存储在 MySQL 数据库中的某个位置(这是个好主意吗?)

如果这个问题听起来含糊不清和愚蠢,我真的很抱歉,我对如何实现这一点没有太多线索,我已经尝试过谷歌搜索。如果您对此有任何疑问,请告诉我。

非常感谢你。

4

6 回答 6

20

鼠标悬停时星星会亮起
网络上有一个设计 5 星评级系统的精彩教程:http ://rog.ie/blog/css-star-rater 。它纯粹是 CSS,所以不需要 Javascripting。

单击星号时不必重新加载页面(不是真的需要)
Ajax 是你的朋友,我所做的是有一个代表星的位置,该<a class="one_star" href="javascript: submitRating(1, 5)">函数使用 Ajax 将我的评分(1/5)传输到服务器,服务器存储评分(并分配给出评分的用户)并重新计算新的平均评分并以 JSON 格式提交回结果。<a>submitRating()

星星旁边显示的某种平均值
很容易。编写一个 SQL 脚本,根据产品 ID,将平均评分的总和(即 1/5 + 2/5 + 4/5 等)除以总评分并乘以乘以 100。将值返回给服务器,然后从服务器返回给客户端。

评级必须存储在 MySQL 数据库中的某个位置(这是一个好主意吗?)
我正在使用 MySQL,它就像一个魅力......任何数据库系统都很好。

于 2010-02-24T08:23:26.023 回答
3

鼠标悬停时星星会亮起
简单,有一个黄色星星的图像和一个白色星星的图像。当一颗星星悬停时,左边的所有星星的“src”都变成了黄色的星星,右边的所有星星的src都变成了白色的星星。

单击星号时页面不会重新加载
查看 Ajax/XHR
http://en.wikipedia.org/wiki/Ajax_(programming)
提示:有一个名为 vote.php 的 .php 文件,并将您的 ID 传递给它食物和用户给出的评级。

星星之间显示的某种平均值
大多数网站只显示 0%、50% 和 100% 的星星......如果用户没有得到“精确的精度”,他们不会真的吓坏了

评级应该存储在 MySQL 数据库中
任何数据库系统都可以。但是,是的,您可能希望为此使用 SQL 数据库

于 2010-02-24T08:03:31.417 回答
2

这是一个类似问题的答案,应该是一个很好的开始。

使用 jQuery 和 CSS 将数字转换为星级显示

于 2010-02-24T08:15:40.790 回答
0

是的,你的方法听起来很完美。有几件:

具有悬停效果的星星:

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 可以使用 jquery 调用 ajax 调用:http: //api.jquery.com/jQuery.post/

然后在服务器端它可以维护在评级表中

这里有一个更长的例子:

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

于 2010-02-24T08:04:35.820 回答
0

JS 和 PHP 的组合是可行的方法(如果 PHP 是您选择的服务器端语言)。JQuery 是一种轻松实现某种星标系统的好方法,我曾经为我后来删除的一个网站开发了这个。这是一件简单的事情,将翻转事件链接到 5 张图像。单击时,如果它是“id 4”,它会使用 jQuery 的 .post() 函数将其作为用户的投票发送到 PHP 脚本,该脚本会记录用户并在 MySQL 数据库中记录投票(如果他们没有)已经投票了。

于 2010-02-24T08:04:58.207 回答
0

要拥有一个不错的星点击控件,是的,您需要 javascript。所以你应该做jQuery。

是的,您需要将内容存储在数据库中。您可以为此使用 PHP 和 MySQL。

鉴于这是一个班级作业,要实现的内容很多。考虑使用现有的 CMS 作弊。Drupal 特别具有与您要求的功能相似的功能。您不必学习 Drupal 的很多知识,只需购买“使用 Drupal”一书即可。第 4 章将向您展示如何:

... 建立一个社区产品评论网站,其中 ... 和 Fivestar 模块提供评级小部件。

Drupal 是基于 PHP 的,并使用 MySQL 作为其数据库,因此它似乎与您要去的地方相匹配。让 Drupal 运行可能需要一些时间……但是您可以快速进入第 4 章。

如果老师非要你写代码,Drupal 是开源的,而且很容易添加自定义模块。

于 2010-02-24T08:08:56.427 回答