找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2052|回复: 0

[分享] 织梦列表页,支持顶(赞)和踩的功能,顶过后标红高亮显示

[复制链接]
发表于 2018-7-29 14:38:59 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
模板

  1. <script language="javascript" type="text/javascript">  
  2. function postDigg(ftype,aid)   
  3. {
  4.     var taget_obj = document.getElementById('diggNum'+aid);   
  5.    
  6.     var saveid = GetCookie('diggid');   //我所有赞过的文章id
  7.     //alert(saveid);
  8.     if(saveid != null)   
  9.     {
  10.         var saveids = saveid.split(',');   
  11.         var hasid = false;   
  12.         saveid = '';   
  13.         j = 1;   
  14.         for(i=saveids.length-1;i>=0;i--)   
  15.         {
  16.             if(saveids[i]==aid && hasid) continue; //我顶过  
  17.             else {   
  18.                 if(saveids[i]==aid && !hasid) hasid = true;   
  19.                 saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);   
  20.                 j++;   
  21.                 if(j==20 && hasid) break;   
  22.                 if(j==19 && !hasid) break;   
  23.             }   
  24.         }   
  25.         if(hasid) {
  26.         //alert("您已经顶过该帖,请不要重复顶帖 !");
  27.         //如果点击后,被赞过.则不需要更新统计,直接改变颜色
  28.         $('#digg'+aid).addClass("icon-heart-on");
  29.         return;
  30.         }   
  31.         else saveid += ','+aid;   
  32.         SetCookie('diggid',saveid,1);  
  33.         
  34.     }   
  35.     else   
  36.     {   //如果cookie中无记录,则记录
  37.         SetCookie('diggid',aid,1);
  38.         
  39.     }   
  40.     myajax = new DedeAjax(taget_obj,false,false,'','','');   
  41.     var url = "{dede:global.cfg_phpurl/}/digg_ajax_list.php?action="+ftype+"&id="+aid;   
  42.     myajax.SendGet2(url);
  43.    
  44.     DedeXHTTP = null;  
  45. }   

  46. </script>
  47. {dede:arclist row='6' orderby='id' titlelen='100'}

  48. <span  id="diggNum[field:id/]">&nbsp;<a href="javascript:"class=" text-bbb text-16" onclick="javascript:postDigg('good',[field:id/])"><span id="digg[field:id/]" class="icon-heart2 ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;</a>[field:goodpost/]
  49. </span>  
  50. {/dede:arclist}

  51. css

  52. .icon-heart2{
  53.     background: url(../images/bg-main.png) -22px 5px no-repeat;
  54. }
  55. .icon-heart2:hover{
  56.     background: url(../images/bg-main.png) 2px 4px no-repeat;
  57. }
  58. .icon-heart-on{
  59.     background: url(../images/bg-main.png) 2px 4px no-repeat;
  60. }
复制代码

然后在,plus中新建立一个digg_ajax_list.PHP文件,内容为

  1. <?php   
  2.    
  3. require_once(dirname(__FILE__)."/../include/common.inc.php");   
  4.   
  5. $action = isset($action) ? trim($action) : '';   
  6. $id = empty($id)? 0 : intval(preg_replace("/[^\d]/",'', $id));   
  7.   
  8. if($id < 1)   
  9. {   
  10.     exit();   
  11. }   
  12. $maintable = 'dede_archives';   
  13. if($action == 'good')   
  14. {   
  15.     $dsql->ExecuteNoneQuery("Update `$maintable` set scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=".time()." where id='$id'");   
  16. }   
  17. else if($action=='bad')   
  18. {   
  19.     $dsql->ExecuteNoneQuery("Update `$maintable` set scores = scores - {$cfg_caicai_sub},badpost=badpost+1,lastpost=".time()." where id='$id'");   
  20. }   
  21. $digg = '';   
  22. $row = $dsql->GetOne("Select goodpost,badpost,scores From `$maintable` where id='$id' ");   
  23. if(!is_array($row))   
  24. {   
  25.     exit();   
  26. }   
  27. if($row['goodpost']+$row['badpost'] == 0)   
  28. {   
  29.     $row['goodper'] = $row['badper'] = 0;   
  30. }   
  31. else  
  32. {   
  33.     $row['goodper'] = number_format($row['goodpost']/($row['goodpost']+$row['badpost']),3)*100;   
  34.     $row['badper'] = 100-$row['goodper'];   
  35. }   
  36.   
  37. if(empty($formurl)) $formurl = '';   
  38. if($formurl=='caicai')   
  39. {  
  40.     if($action == 'good') $digg = $row['goodpost'];   
  41.     if($action == 'bad') $digg  = $row['badpost'];   
  42. }   
  43. else  
  44. {   
  45.     $row['goodper'] = trim(sprintf("%4.2f", $row['goodper']));   
  46.     $row['badper'] = trim(sprintf("%4.2f", $row['badper']));      
  47.     $digg = '<a  class=" text-bbb text-16"href="javascript:" onclick="javascript:postDigg(\'good\','.$id.')"><span  =id="digg'.$id.'"class="icon-heart-on">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;</a>'.$row['goodpost'];   //点击后,如果从没有被赞过,则自动把新的点击次数重写入目标位置.
  48. }   
  49. AjaxHead();   
  50. echo $digg;   
  51. exit();   
  52. ?>  
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-30 14:20 , Processed in 0.041463 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表