Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

discuzx 中加入分类打分代码

[复制链接]
rikioy 发表于 2011-9-30 14:04:58 | 显示全部楼层 |阅读模式
本帖最后由 rikioy 于 2011-9-30 14:07 编辑

最近做了一个功能,分类打分。再次分享一下。因为涉及到很多地方,所以你拿去肯定不能直接用。明白了原理,然后再做修改。这个功能是discuzx中摘出来的。
先来HTML代码部分
6项打分,这个是html代码部分,在discuzx中是用函数循环输出这些的。
然后是CSS部分

  1. .star_rating, .star_rating a:hover, .star_rating a:active, .star_rating a:focus, .star_rating .current_rating {background: url("images/star.gif") left -1000px repeat-x;}
  2. .star_rating {background-position:left top;height: 14px;list-style: none outside none;margin: 0;overflow: hidden;padding: 0;position: relative;width:75px;margin-left:3px;}
  3. .star_rating li {display: inline;display: block;float: left;}
  4. .star_rating a, .star_rating .current_rating { border: medium none;height: 14px;left: 0;line-height: 14px; outline: medium none; overflow: hidden; position: absolute; text-indent: -1000em; top: 0;}
  5. .star_rating a:hover, .star_rating a:active, .star_rating a:focus { background-position: left bottom;}
  6. .star_rating a.one_star {width: 15px; z-index: 6;}
  7. .star_rating a.two_star {width: 30px;z-index: 5;}
  8. .star_rating a.three_star { width: 45px;z-index: 4;}
  9. .star_rating a.four_star { width: 60px; z-index: 3;}
  10. .star_rating a.five_star { width: 75px; z-index: 2;}
  11. .star_rating .current_rating {background-position: left bottom;z-index: 1;}
复制代码

投票的部分是通过绑定 onclick事件进行的

  1. <script type="text/javascript">
  2. var rating_group = new Array();
  3. var rating_types = new Array();
  4. rating_types[0] = 'traffic';
  5. rating_types[1] = 'environment';
  6. rating_types[2] = 'design';
  7. rating_types[3] = 'facilities';
  8. rating_types[4] = 'developer';
  9. rating_types[5] = 'management';

  10. function rating(obj){
  11. if( $_G['uid'] == 0){
  12. showDialog('{lang house_rating_login}','notice');
  13. return false;
  14. }
  15. var score = obj.id.substr(0,1);
  16. var type = obj.id.substr(2);
  17. var rating = score*15;
  18. $(type+'_current_rating').style.width = rating+'px';
  19. rating_group[type] = score;
  20. var flag = true;
  21. for( var i=0; i<rating_types.length; i++) {
  22. if( !(rating_types[i] in rating_group)) {
  23. flag = false;
  24. }
  25. }
  26. if(flag){
  27. var ratingstr = "";
  28. ratingstr += "HASH:{FORMHASH}";
  29. for( type in rating_group){
  30. ratingstr += "," + type + ":" + rating_group[type];
  31. }
  32. ajaxget('house.php?mod=misc&ac=rating&hid=$tid&ratingstr='+ratingstr, null, null, '', '', function() {
  33. showDialog('{lang house_rating_success}','notice', '', '', '', '', '', '', '', 2);
  34. window.location.reload();
  35. });
  36. rating_group = new Array();
  37. }
  38. }
  39. </script>
复制代码
js中做了判断,只有6项都进行评分后才会提交分数
提交分数是用dx中的ajaxget函数进行的。
  1. ajaxget('house.php?mod=misc&ac=rating&hid=$tid&ratingstr='+ratingstr, null, null, '', '', function() {
  2. showDialog('{lang house_rating_success}','notice', '', '', '', '', '', '', '', 2);
  3. window.location.reload();
  4. });
复制代码
后台处理部分就属于php常规的一些操作了。就写到这吧。

效果如图

用到的星星图片


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

extollive 发表于 2011-9-30 14:10:12 | 显示全部楼层
耶~这次我是沙发
回复

使用道具 举报

extollive 发表于 2011-9-30 14:10:36 | 显示全部楼层
耶~这次我是沙发
回复

使用道具 举报

 楼主| rikioy 发表于 2011-9-30 14:12:05 | 显示全部楼层
简单易懂吗?看的明白吗?
回复

使用道具 举报

菜鸟鸟 发表于 2011-9-30 14:14:27 来自手机 | 显示全部楼层
这个功能不错
回复

使用道具 举报

happy7899 发表于 2011-9-30 14:17:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

64243354 发表于 2011-9-30 19:59:11 | 显示全部楼层
老大多多出这些美化的方法呗
2.5有这功能吧
回复

使用道具 举报

neol123 发表于 2011-10-1 10:38:54 | 显示全部楼层
不了接技术啊

么办法

只有等以后有大侠做现成的,来用了

辛苦了
回复

使用道具 举报

pcyi 发表于 2011-10-1 19:25:28 | 显示全部楼层
支持了,虽然不懂技术... 不过这些貌似不是给站长看的,哈哈!!
回复

使用道具 举报

ijohnw 发表于 2011-10-1 19:44:26 | 显示全部楼层
支持一下。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 14:36 , Processed in 0.039265 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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