監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
新余網(wǎng)站建設(shè)公司

當前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 新余OA > 新余網(wǎng)站建設(shè)公司

php+jquery 星級評分程序

申請免費試用、咨詢電話:400-8352-114

首先 HTML

  1. <li>游戲評分:
  2. <div>
  3. 總評分:<span id="showpf"><script type="text/javascript" src="www.xxx.com/showinfo.php?action=pingfen&gid=<?=$arcid?>&pdid=1"></script></span>
  4. <p id="rate_span"></p>
  5. <div id="pfnum">
  6. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="1分,點擊進行評分!" />
  7. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="2分,點擊進行評分!" />
  8. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="3分,點擊進行評分!" />
  9. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="4分,點擊進行評分!" />
  10. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="5分,點擊進行評分!" />
  11. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="6分,點擊進行評分!" />
  12. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="7分,點擊進行評分!" />
  13. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="8分,點擊進行評分!" />
  14. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="9分,點擊進行評分!" />
  15. <img src="http://inncache.soso.com/xsoso/images/empty_star.gif" width="28" title="<?=$arcid?>" height="28" class="ratestar_img" alt="10分,點擊進行評分!" />
  16. </div>
  17. <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>
  18. </div>
  19.  </li>

 

HTML 注釋:
<?=$arcid?> 文章ID
pdid=1 這個大家不用管,這是我區(qū)分游戲,軟件,和新聞加的一個頻道ID
showinfo.php 顯示當前評分 這個就不搬出來了,就是查詢出你數(shù)據(jù)庫現(xiàn)在這個游戲的評分,至于數(shù)據(jù)庫呆會另外一個文件會詳細講解,請繼續(xù)往下看。
 

現(xiàn)在開始上JQ了

 

  1. $(function(){
  2.  
  3. //目前評分狀況
  4. var spoint = parseInt($("#showpf").text());
  5. var avarankstr = '';
  6. if(spoint <= 4){
  7. avarankstr="(垃圾中的戰(zhàn)斗機)";
  8. }else if(spoint <= 7){
  9. avarankstr="(湊合著過日子吧,可以試試)";
  10. }else if(spoint <= 9){
  11. avarankstr="(很好,強烈推薦)";
  12. }else{
  13. avarankstr="(非常完美,絕世佳作)";
  14. }
  15. //顯示根據(jù)評分得出的中文描述
  16. $("#rate_span").html(avarankstr);
  17.  
  18. //循環(huán)出目前的星級
  19. $("#pfnum img").each(function(i){
  20. if(i <= spoint-1){
  21. $(this).attr("src","http://inncache.soso.com/xsoso/images/newxw/full_star.gif");
  22. }
  23. //緩存一個星星數(shù)據(jù),添加鼠標經(jīng)過和離開動作,鼠標離開則還原到原有評分星級
  24. $(this).data("point",(i+1));
  25. $(this).hover(function(){
  26. var point=$(this).data("point");
  27. $.fn.drawpoint(point);
  28. $("#bigrate_span").html(point);
  29. },function(){
  30. $.fn.drawpoint(spoint);
  31. $("#bigrate_span").html(spoint);
  32. $("#rate_span").html(avarankstr);
  33. });
  34. });
  35.  
  36. //點擊進行評分
  37. $("#pfnum img").click(function(){
  38. var indexpf = $(this).index()+1;
  39. var gid = $(this).attr("title");
  40.  
  41. //這個地方大家注意下,因為我之前是要跨域,所以用了getJSON,如果沒跨域的話就直接 .get 就可以了。
  42. $.getJSON('http://m.bbb.com/countdown.php?action=pingfen&pdid=1&field_id='+gid+'&pf='+indexpf+'&callback=?',function(data){
  43. if(data.pf=='a'){
  44. alert("這個游戲你已經(jīng)評分過了");
  45. }else if(data.pf=='b'){
  46. alert("五分鐘內(nèi)只允許評分一次");
  47. }else if(data.pf=='c'){
  48. alert("網(wǎng)絡(luò)發(fā)生未知錯誤,請稍后再試");
  49. }else{
  50. $("#showpf").text(data.pf);
  51. spoint = data.pf;  
  52. $.fn.drawpoint(data.pf);
  53. alert("您成功的評分了一個游戲");
  54. alert(data.pf);
  55. }
  56. });
  57. });
  58.  
  59. //星級處理方法
  60. $.fn.drawpoint=function(point){
  61. if(point <= 4){
  62. avarankstr="(垃圾中的戰(zhàn)斗機)";
  63. }else if(point <= 7){
  64. avarankstr="(湊合著過日子吧,可以試試)";
  65. }else if(point <= 9){
  66. avarankstr="(很好,強烈推薦)";
  67. }else{
  68. avarankstr="(非常完美,絕世佳作)";
  69. }
  70. $("#rate_span").html(avarankstr);
  71.  
  72. $("#pfnum img").each(function(i){
  73. if(i <= point-1){
  74. $(this).attr("src","http://inncache.soso.com/xsoso/images/newxw/full_star.gif");
  75. }else{
  76. $(this).attr("src","http://inncache.soso.com/xsoso/images/newxw/empty_star.gif");
  77. }
  78. });
  79. }
  80. });

最后PHP處理文件
 

  1. //統(tǒng)計評分
  2. function countpf($field_id,$pdid,$pf){
  3. global $db;
  4. $field_id = intval($field_id);
  5. $pdid = intval($pdid);
  6. $pf = intval($pf);
  7. $tableName = 'otherinfo';
  8. $rs = $db->query("select * from $tableName where gid=$field_id and pdid=$pdid");
  9. //如果之前沒有評分過, !rs也可以
  10. if($db->num_rows($rs) < 1){
  11. $db->query("insert into $tableName values(NULL,$field_id,$pdid,0,0,0,$pf,1,0)");
  12. $r_pf = $pf;
  13. }
  14. //否則重新計算
  15. else{
  16. $result = $db->fetch_array($rs);
  17. $pfnum = $result['pfnum']; //評分人數(shù)
  18. $pfnum++;
  19. $pf = $pf+$result['pf']; //相加之前的評分
  20. $r_pf = ceil($pf/$pfnum); //去整,小數(shù)點評分沒弄,大家可以自己弄弄
  21. $db->query("update $tableName set pf=$pf,pfnum=$pfnum where id=$result[id]");
  22. }
  23. return $r_pf; //返回現(xiàn)在評分
  24. }
  25.  
  26. if($_GET['action'] == 'pingfen' && $_GET['field_id'] && $_GET['pdid'] && $_GET['pf'] && isset($_REQUEST['callback'])){
  27.  
  28. //獲取用戶IP和文章ID,方法自己找一個。
  29. $cookiestr = get_onlineip().$_GET['field_id'];
  30.  
  31. //這個文章是否已經(jīng)被評過
  32. if(isset($_COOKIE['pfperson']) && $_COOKIE['pfperson']==$cookiestr){
  33. $str = 'a';
  34. }
  35. //防止惡意評分,每五分鐘才可以評一次
  36. elseif(isset($_COOKIE['pftime']) && (time()-intval($_COOKIE['pftime']) <= 300)){
  37. $str = 'b';
  38. }else{
  39. //設(shè)置COOKIE
  40. set_cookie("pfperson",$cookiestr,time()+3600*365);
  41. set_cookie("pftime",time(),time()+3600*365);
  42. //處理評分
  43. $str = countpf($_GET['field_id'],$_GET['pdid'],$_GET['pf']);
  44. }
  45.  
  46. //如果沒跨域的話,直接 echo $str, 不用輸出JSON格式
  47. $callback = $_REQUEST['callback'];
  48. $arr = array('pf' => $str);
  49. $json = json_encode($arr);
  50. $json = $callback . '(' . $json . ')';
  51. echo $json;
  52. }else{
  53. exit;
  54. }

數(shù)據(jù)庫: id,pdid, gid, pf, pfnum  全部int型。
JQ版本 1.4
PHP 5.2.6 

 

新余網(wǎng)站建設(shè)

發(fā)布:2007-03-31 15:14    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
新余OA
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

泛普新余網(wǎng)站建設(shè)公司其他應(yīng)用

新余軟件開發(fā)公司 新余門禁系統(tǒng) 新余物業(yè)管理軟件 新余倉庫管理軟件 新余餐飲管理軟件 新余網(wǎng)站建設(shè)公司