一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Wordpress实现文章支持和反对的功能

时间:2013-06-13 编辑:简简单单 来源:一聚教程网

我是用wp做二次开发的,当然你也可以装插件。不过我是自己定制的了。

实现代码:

php code:首先在数据库表wp_posts添加两个字段like 和un like

 代码如下 复制代码


public function dolike_unlike(){
        $b = M();
        $input = new input();
        $id = $input->post('id');//过滤提交的信息。防止sql注入,之前发的代码我都补上了。
        //$id = 5524;
        $val = $_POST['data'];
        if($val==1){
        $b->query("update `wp_posts` set `like` =`like`+1 WHERE id = $id");//点击like的更新   
            }else if($val==0){
            $b->query("update `wp_posts` set `unlike` =`unlike`+1 WHERE id = $id");  //dislike更新
                }else{
                    $this->error('error');
                    }
        $list = $b->query("SELECT `like`,`unlike` FROM `wp_posts` WHERE id = $id");//获取数据
        $like = $list[0]['like'];
        $dislike = $list[0]['unlike'];
        if($like!=0 || $dislike!=0){//计算
            $elike = $like/($like+$dislike);
            $elike = substr($elike*100,0,4);
            $edislike = $dislike/($like+$dislike);
            $edislike = substr($edislike*100,0,4);
            }
        //echo $elike;
        $output = array(//组合函数待输出
            likenum=>$like,
            dislikenum=>$dislike,
            like=>$elike,
            dislike=>$edislike
        );
        //echo $list;
        //dump($output);
        $this->ajaxReturn($output,'success',1);//输出
        //echo 'ok';
        //$this->display('');
        }  

html code:

 代码如下 复制代码


                     
                 

                 

                 
Like                    
                 

                 

                   
                 

                 

                 

                  Dislike
                 

                 

                 

js code:

 代码如下 复制代码

jQuery(".dingload img").ajaxStart(function(){//ajax提示
        jQuery(this).show();
        });
    jQuery(".dingload img").ajaxStop(function(){
        jQuery(this).hide();
        }); 
    var pid = jQuery(".left_like").attr("postid");  
    var likecookie = jQuery.cookie("like"+pid);
    if(likecookie!=pid){//判断是否点击过,如果没有点击则
            jQuery(".left_like,.right_unlike").addClass("allow_click");
            jQuery.get('/cityosweb/default.php/Shanmao/wplike_unlike',{id:pid},function(data){
                    if(data.status==1){//显示背景百分比和like dislike字样
                        jQuery(".left_like .left_con").css("width",data.data.like+"%");
                        jQuery(".right_unlike .right_con").css("width",data.data.dislike+"%");
                        }
                    },"json");
            }else{//如果已经投过票了则       
                jQuery(".left_like,.right_unlike").addClass("disallow_click");      
                jQuery.get('/cityosweb/default.php/Shanmao/wplike_unlike',{id:pid},function(data){
                    if(data.status==1){//显示背景百分比和投票数
                        //alert(data.likenum);
                        jQuery("#like").html(data.data.likenum);
                        jQuery("#dislike").html(data.data.dislikenum);
                        jQuery(".left_like .left_con").css("width",data.data.like+"%");
                        jQuery(".right_unlike .right_con").css("width",data.data.dislike+"%");
                        }
                    },"json");
                }
    jQuery(".left_like,.right_unlike").click(function(){
        if(jQuery(this).hasClass("allow_click")){//如果有这个class才提交
            var val = jQuery(this).attr("val");
            var postid = jQuery(this).attr("postid");
            jQuery.post('/cityosweb/default.php/Shanmao/dolike_unlike',{data:val,id:postid},function(data){//点击的时候
            if(data.status==1){//成功返回处理
                        jQuery("#like").html(data.data.likenum);
                        jQuery("#dislike").html(data.data.dislikenum);
                        jQuery(".left_like .left_con").css("width",data.data.like+"%");
                        jQuery(".right_unlike .right_con").css("width",data.data.dislike+"%");
            jQuery(".left_like,.right_unlike").removeClass("allow_click").addClass("disallow_click");
            jQuery.cookie('like'+postid,postid,{expires: 1});//提交后写入cookie,这里是用juqery.cookie插件。保存一天时间,每篇文章保存不一样的id。值随意,只要你上面好做判断。
            }else{
                alert(data.info);
                }
                },"json");
        }
        });
    jQuery(".disallow_click").live("click",function(){//不允许提交时候弹出
        alert("Your vote has already been submitted!");
        });

热门栏目