我对网络技术非常陌生,这基本上适用于我的团队正在开展的学期项目。我们正在开设一个食品评论网站。
截至目前,我不太确定如何实施简单的五星评级系统。我应该使用像PHP这样的服务器端语言,或者像Javascript(w / JQuery)那样使用客户端语言。环顾四周似乎JQuery更适合这个?或者它是两者的组合?
就功能而言,我正在寻找的是:
如果这个问题听起来含糊不清,我真的很抱歉,我对如何实现这个问题并不太了解,而且我已经尝试了谷歌搜索。如果您对此有任何疑问,请告诉我。
非常感谢。
答案 0 :(得分:20)
鼠标悬停时星星点亮
在网上有一个精彩的教程,用于设计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脚本,根据产品ID,取平均评级的总和(即1/5 + 2/5 + 4/5等),将其除以(总和)总评分量乘以100.将值返回给服务器,然后从服务器返回客户端。
评级必须存储在MySQL数据库的某个位置(这是一个好主意吗?) 我正在使用MySQL,它就像一个魅力......任何数据库系统都很好。
答案 1 :(得分:3)
鼠标悬停时星星点亮
简单,有黄色星形图像和白色星形图像。当一颗恒星徘徊时,左边的所有恒星都将它们的“src”改为黄色恒星,右边的所有恒星都将它们的srcs改为白色恒星。
点击星标时不会重新加载页面
查看Ajax / XHR
http://en.wikipedia.org/wiki/Ajax_(programming)
提示:有一个名为vote.php的.php文件,并将食物的ID和用户给出的评级传递给它。
明星之间显示某种平均值
大多数网站只显示0%,50%和100%的明星......如果用户不能获得“确切的精确度”,他们就不会真正感到害怕
评分应存储在MySQL数据库中
任何数据库系统都没问题。但是,您可能希望将SQL数据库用于此
答案 2 :(得分:2)
这是对类似问题的回答,应该是一个很好的开始。
答案 3 :(得分: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/
答案 4 :(得分:0)
JS和PHP的结合是可行的方法(如果PHP是您选择的服务器端语言)。 JQuery是一种轻松实现某种主演系统的好方法,我曾经为我之后移除的一个网站开发了这个系统。这是一个简单的事情,有5个图像链接的onrollover事件。单击时,如果它是“id 4”,它将使用jQuery的.post()函数将其作为用户的投票发送到PHP脚本,该脚本记录用户并在MySQL数据库中记录投票,如果他们没有已经投了票。
答案 5 :(得分:0)
要有一个不错的星形点击控件,是的,你需要javascript。所以你应该做jQuery。
是的,您需要将内容存储在数据库中。你可以使用PHP和MySQL。
鉴于这是一个类赋值,需要实现很多。考虑使用现有CMS进行作弊。 Drupal特别具有与您要求的功能相似的功能。你不必学习Drupal,只需购买“使用Drupal”这本书。第4章将向您展示如何:
...建立社区产品评论网站,其中......和Fivestar模块提供评级小部件。
Drupal是基于PHP的,并使用MySQL作为其数据库,因此它似乎与您的目标相匹配。让Drupal运行可能需要一些时间......但是你可以快速进入第4章。
如果老师坚持要你编写代码,Drupal是开源的,很容易添加自定义模块。