PHP+MySql+jQuery实现的\"顶\"和\"踩\"投票功能

前端技术 2023/09/02 PHP

本文实例为大家分享了基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码,供大家参考,具体内容如下

数据库操作:

CREATE TABLE IF NOT EXISTS `votes` ( 
 `id` int(10) NOT NULL AUTO_INCREMENT, 
 `likes` int(10) NOT NULL DEFAULT \'0\', 
 `unlikes` int(10) NOT NULL DEFAULT \'0\', 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
 
 
INSERT INTO `votes` (`id`, `likes`, `unlikes`) VALUES 
(1, 30, 10); 
 
CREATE TABLE IF NOT EXISTS `votes_ip` ( 
 `id` int(10) NOT NULL, 
 `vid` int(10) NOT NULL, 
 `ip` varchar(40) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

div: 

<div class=\"digg\"> 
 <div id=\"dig_up\" class=\"digup\"> 
 <span id=\"num_up\"></span> 
 <p>很好,很强大!</p> 
 <div id=\"bar_up\" class=\"bar\"><span></span><i></i></div> 
 </div> 
 <div id=\"dig_down\" class=\"digdown\"> 
 <span id=\"num_down\"></span> 
 <p>太差劲了!</p> 
 <div id=\"bar_down\" class=\"bar\"><span></span><i></i></div> 
 </div> 
 <div id=\"msg\"></div> 
</div> 

css:

.digg{width:420px; height:120px; margin:80px auto 20px auto; position:relative} 
#dig_up,#dig_down{width:200px; height:48px; margin:10px; position:relative; 
border:1px solid #d3d3d3; padding-left:42px; cursor:pointer} 
.digup{background:url(diggs.png) no-repeat 4px 2px;} 
.digup_on{background:url(diggs.png) no-repeat 4px -49px;} 
.digdown{background:url(diggs.png) no-repeat 4px -102px;} 
.digdown_on{background:url(diggs.png) no-repeat 4px -154px;} 
#num_up,#num_down{position:absolute; right:6px; top:18px; font-size:20px;} 
#dig_up p{height:24px; line-height:24px; color:#360} 
#dig_down p{height:24px; line-height:24px; color:#f30} 
.bar{width:100px; height:12px; line-height:12px; border:1px solid #f0f0f0; 
position:relative; text-align:center} 
.bar span{display:block; height:12px; } 
.bar i{position:absolute; top:0; left:104px;} 
#bar_up span{background:#360} 
#bar_down span{background:#f60} 
#msg{position:absolute; right:20px; top:40px; font-size:18px; color:#f00} 

jquery:

$(function(){ 
 //鼠标滑向和离开投票按钮时,变换背景样式 
 $(\"#dig_up\").hover(function(){ 
 $(this).addClass(\"digup_on\"); 
 },function(){ 
 $(this).removeClass(\"digup_on\"); 
 }); 
 $(\"#dig_down\").hover(function(){ 
 $(this).addClass(\"digdown_on\"); 
 },function(){ 
 $(this).removeClass(\"digdown_on\"); 
 }); 
 
 //初始化数据 
 getdata(\"do.php\",1); 
 
 //单击“顶”时 
 $(\"#dig_up\").click(function(){ 
 getdata(\"do.php?action=like\",1); 
 }); 
 //单击“踩”时 
 $(\"#dig_down\").click(function(){ 
 getdata(\"do.php?action=unlike\",1); 
 }); 
}); 
 
 
 
---------------------------------------
function getdata(url,sid){ 
 $.getJSON(url,{id:sid},function(data){ 
 if(data.success==1){//投票成功 
  $(\"#num_up\").html(data.like); 
  //通过控制宽度来显示百分比进度条效果 
  $(\"#bar_up span\").css(\"width\",data.like_percent); 
  $(\"#bar_up i\").html(data.like_percent); 
  $(\"#num_down\").html(data.unlike); 
  $(\"#bar_down span\").css(\"width\",data.unlike_percent); 
  $(\"#bar_down i\").html(data.unlike_percent); 
 }else{//投票失败 
  $(\"#msg\").html(data.msg).show().css({\'opacity\':1,\'top\':\'40px\'}) 
  .animate({top:\'-50px\',opacity:0}, \"slow\"); 
 } 
 }); 
} 

php:

include_once(\"connect.php\");//连接数据库 
 
$action = $_GET[\'action\']; 
$id = 1; 
$ip = get_client_ip();//获取ip 
 
if($action==\'like\'){//顶 
 likes(1,$id,$ip); 
}elseif($action==\'unlike\'){//踩 
 likes(0,$id,$ip); 
}else{ 
 echo jsons($id); 
} 
 
------------------------------------
function likes($type,$id,$ip){ 
 $ip_sql=mysql_query(\"select ip from votes_ip where vid=\'$id\' and ip=\'$ip\'\"); 
 $count=mysql_num_rows($ip_sql); 
 if($count==0){//还没有顶过 
 if($type==1){//顶 
  $sql = \"update votes set likes=likes+1 where id=\".$id; 
 }else{//踩 
  $sql = \"update votes set unlikes=unlikes+1 where id=\".$id; 
 } 
 mysql_query($sql); 
  
 $sql_in = \"insert into votes_ip (vid,ip) values (\'$id\',\'$ip\')\"; 
 mysql_query($sql_in); 
  
 if(mysql_insert_id()>0){ 
  echo jsons($id); 
 }else{ 
  $arr[\'success\'] = 0; 
  $arr[\'msg\'] = \'操作失败,请重试\'; 
  echo json_encode($arr); 
 } 
 }else{ 
 $msg = $type==1?\'您已经顶过了\':\'您已经踩过了\'; 
 $arr[\'success\'] = 0; 
 $arr[\'msg\'] = $msg; 
 echo json_encode($arr); 
 } 
} 
 
 
-----------php-------------------------
 
 
function jsons($id){ 
 $query = mysql_query(\"select * from votes where id=\".$id); 
 $row = mysql_fetch_array($query); 
 $like = $row[\'likes\']; 
 $unlike = $row[\'unlikes\']; 
 $arr[\'success\']=1; 
 $arr[\'like\'] = $like; 
 $arr[\'unlike\'] = $unlike; 
 $like_percent = round($like/($like+$unlike),3)*100; 
 $arr[\'like_percent\'] = $like_percent.\'%\'; 
 $arr[\'unlike_percent\'] = (100-$like_percent).\'%\'; 
 
 return json_encode($arr); 
} 

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

本文地址:https://www.stayed.cn/item/6002

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。