php+jquery 星级评分程序
- <li>游戏评分:
- <div>
- 总评分:<span id="showpf"><script type="text/javascript" src="www.xxx.com/showinfo.php?action=pingfen&gid=<?=$arcid?>&pdid=1"></script></span>
- <p id="rate_span"></p>
- <div id="pfnum">
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="1分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="2分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="3分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="4分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="5分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="6分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="7分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="8分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="9分,点击进行评分!" />
- <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="10分,点击进行评分!" />
- </div>
- <span style="font-size:36px;" id="bigrate_span"><script type="text/javascript" src="www.xxx.com/showinfo.php?action=pingfen&gid=<?=$arcid?>&pdid=1"></script></span>
- </div>
- </li>
HTML 注释:
<?=$arcid?> 文章ID
pdid=1 这个大家不用管,这是我区分游戏,软件,和新闻加的一个频道ID
showinfo.php 显示当前评分 这个就不搬出来了,就是查询出你数据库现在这个游戏的评分,至于数据库呆会另外一个文件会详细讲解,请继续往下看。
现在开始上JQ了
- $(function(){
- //目前评分状况
- var spoint = parseInt($("#showpf").text());
- var avarankstr = '';
- if(spoint <= 4){
- avarankstr="(垃圾中的战斗机)";
- }else if(spoint <= 7){
- avarankstr="(凑合着过日子吧,可以试试)";
- }else if(spoint <= 9){
- avarankstr="(很好,强烈推荐)";
- }else{
- avarankstr="(非常完美,绝世佳作)";
- }
- //显示根据评分得出的中文描述
- $("#rate_span").html(avarankstr);
- //循环出目前的星级
- $("#pfnum img").each(function(i){
- if(i <= spoint-1){
- $(this).attr("src","http://inncache.soso.com/xsoso/images/newxw/full_star.gif");
- }
- //缓存一个星星数据,添加鼠标经过和离开动作,鼠标离开则还原到原有评分星级
- $(this).data("point",(i+1));
- $(this).hover(function(){
- var point=$(this).data("point");
- $.fn.drawpoint(point);
- $("#bigrate_span").html(point);
- },function(){
- $.fn.drawpoint(spoint);
- $("#bigrate_span").html(spoint);
- $("#rate_span").html(avarankstr);
- });
- });
- //点击进行评分
- $("#pfnum img").click(function(){
- var indexpf = $(this).index()+1;
- var gid = $(this).attr("title");
- //这个地方大家注意下,因为我之前是要跨域,所以用了getJSON,如果没跨域的话就直接 .get 就可以了。
- $.getJSON('http://m.bbb.com/countdown.php?action=pingfen&pdid=1&field_id='+gid+'&pf='+indexpf+'&callback=?',function(data){
- if(data.pf=='a'){
- alert("这个游戏你已经评分过了");
- }else if(data.pf=='b'){
- alert("五分钟内只允许评分一次");
- }else if(data.pf=='c'){
- alert("网络发生未知错误,请稍后再试");
- }else{
- $("#showpf").text(data.pf);
- spoint = data.pf;
- $.fn.drawpoint(data.pf);
- alert("您成功的评分了一个游戏");
- alert(data.pf);
- }
- });
- });
- //星级处理方法
- $.fn.drawpoint=function(point){
- if(point <= 4){
- avarankstr="(垃圾中的战斗机)";
- }else if(point <= 7){
- avarankstr="(凑合着过日子吧,可以试试)";
- }else if(point <= 9){
- avarankstr="(很好,强烈推荐)";
- }else{
- avarankstr="(非常完美,绝世佳作)";
- }
- $("#rate_span").html(avarankstr);
- $("#pfnum img").each(function(i){
- if(i <= point-1){
- $(this).attr("src","http://inncache.soso.com/xsoso/images/newxw/full_star.gif");
- }else{
- $(this).attr("src","http://inncache.soso.com/xsoso/images/newxw/empty_star.gif");
- }
- });
- }
- });
最后PHP处理文件
- //统计评分
- function countpf($field_id,$pdid,$pf){
- global $db;
- $field_id = intval($field_id);
- $pdid = intval($pdid);
- $pf = intval($pf);
- $tableName = 'otherinfo';
- $rs = $db->query("select * from $tableName where gid=$field_id and pdid=$pdid");
- //如果之前没有评分过, !rs也可以
- if($db->num_rows($rs) < 1){
- $db->query("insert into $tableName values(NULL,$field_id,$pdid,0,0,0,$pf,1,0)");
- $r_pf = $pf;
- }
- //否则重新计算
- else{
- $result = $db->fetch_array($rs);
- $pfnum = $result['pfnum']; //评分人数
- $pfnum++;
- $pf = $pf+$result['pf']; //相加之前的评分
- $r_pf = ceil($pf/$pfnum); //去整,小数点评分没弄,大家可以自己弄弄
- $db->query("update $tableName set pf=$pf,pfnum=$pfnum where id=$result[id]");
- }
- return $r_pf; //返回现在评分
- }
- if($_GET['action'] == 'pingfen' && $_GET['field_id'] && $_GET['pdid'] && $_GET['pf'] && isset($_REQUEST['callback'])){
- //获取用户IP和文章ID,方法自己找一个。
- $cookiestr = get_onlineip().$_GET['field_id'];
- //这个文章是否已经被评过
- if(isset($_COOKIE['pfperson']) && $_COOKIE['pfperson']==$cookiestr){
- $str = 'a';
- }
- //防止恶意评分,每五分钟才可以评一次
- elseif(isset($_COOKIE['pftime']) && (time()-intval($_COOKIE['pftime']) <= 300)){
- $str = 'b';
- }else{
- //设置COOKIE
- set_cookie("pfperson",$cookiestr,time()+3600*365);
- set_cookie("pftime",time(),time()+3600*365);
- //处理评分
- $str = countpf($_GET['field_id'],$_GET['pdid'],$_GET['pf']);
- }
- //如果没跨域的话,直接 echo $str, 不用输出JSON格式
- $callback = $_REQUEST['callback'];
- $arr = array('pf' => $str);
- $json = json_encode($arr);
- $json = $callback . '(' . $json . ')';
- echo $json;
- }else{
- exit;
- }
数据库: id,pdid, gid, pf, pfnum 全部int型。
JQ版本 1.4
PHP 5.2.6
新余网站建设
- 1新余网站设计公司如何设计方案
- 2Uchome文件系统结构大概
- 3优化中代码需要注意的
- 4阿里云备案流程-首次备案
- 5新余网站建设项目开发流程
- 6ThinkPHP_2.1_full_with_extend 升级到ThinkPHP3.0一些看法
- 7系统的二次开发、初试ECSHOP制作模板
- 8企业网站优化中的内容营销
- 9怎样隐藏服务和版本信息
- 10网站优化中需要注意细节
- 11企业为什么偏偏需要资深的网站建设单位做官网呢?
- 12遇到网站降权怎么处理?
- 13怎么添加网站统计代码?
- 14如何才能在网站建设的过程中做到内容丰富呢?
- 15养成几条PHP编程好习惯
- 16企业为什么须要权威的网站设计单位做官方网站呢?
- 17怎样用Jquery 判断radio,selelct,checkbox是否选中
- 18新余网站建设哪里有?
- 19网站建设之网站定位
- 20老域名的利弊
- 21怎样使用php 获取远程网址头部信息
- 22网站标题文字怎么修改?
- 23高权重的网站的表现
- 24企业为什么偏偏需要权威的网站开发企业做官网呢?
- 25垂直B2B行业转型成功
- 26sockettj_http_get 获取 URL 地址结果
- 27三种方法使PHP生成静态html文件
- 28转化率对网站的影响和改善
- 29新余网站优化之分析数据
- 30新余网站优化关于网站的PR问题
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼