当前位置: 首页 > Web前端 > HTML5

PHP发布心情投票功能源码

时间:2023-04-04 22:45:00 HTML5

当你浏览新闻页面或其他页面时,你会有看完后的感受,比如力量、冷静、打酱油、加油、作弊等表情。让读者给它打分,看看他们是否与其他读者有同样的感受。非常好的互动!查看demo:http://www.weibut.com/demo/20...立即下载:http://www.weibut.com/downloa...本文需要熟悉jquery、mysql、ajax相关知识,但用的不多。本文共有三个文件:index.html、mood.php、sql.phpindex.html、页面显示和请求ajax数据mood.php、后台文件处理get请求过来的数据,并返回数据sql.php、数据库文件,并保存数据库信息直接进入代码栏。index.html首先导入jquery//cdn.bootcss.com/jquery/1.7.2/jquery.min.js并在加载文档时请求(ajax-get)选民人数$.ajax({type:'GET',url:'mood.php',缓存:false,数据:'id=1',dataType:'json',error:function(){alert('发生错误!');},success:function(json){if(json){$.each(json,function(index,array){varstr="

  • "+array['mood_val']+"

  • "+array['mood_name']+"
    ";$("#moodul").append(str);});}}});返回后添加到网页,然后点击表情逻辑,ajax到后台$(".face").live('click',function(){varface=$(this);varmid=face.attr("rel");varvalue=face.parent().find("span").html();varval=parseInt(value)+1;$.post("mood.php?action=发送",{莫odid:mid,id:1},function(data){if(data>0){face.prev().css("height",data+"px");face.parent().find("span").html(val);face.find("img").addClass("selected");}else{警报(数据);}});});这样,整个前台工作就完成了mood.php先导入sql.php数据库文件include_once("sql.php");这个文件处理了整个功能的核心,处理数据库,cookies...1.处理选民人数$mname=explode(',',$moodname);//心情描述$num=count($mname);$mpic=explode(',',$moodpic);//心情图标$id=(int)$_GET['id'];$query=mysql_query("select*frommoodwhereid=$id");$rs=mysql_fetch_array($query);if($rs){$total=$rs['mood0']+$rs['mood1']+$rs['mood2']+$rs['mood3']+$rs['mood4'];for($i=0;$i<$num;$i++){$field='心情'.$i;$m_val=intval($rs[$field]);$高度=0;//列高if($total&&$m_val){$height=round(($m_val/$total)*$moodpicheight);//计算高度}$arr[]=array('mid'=>$i,'mood_name'=>$mname[$i],'mood_pic'=>$mpic[$i],'mood_val'=>$m_val,'height'=>$height);}echojson_encode($arr);}else{for($i=0;$i<$num;$i++){$arr[]=array('mid'=>$i,'mood_name'=>$mname[$i],'mood_pic'=>$mpic[$i],'mood_val'=>0,'height'=>0);}echojson_encode($arr);}2.处理票功能$id=(int)$_POST['id'];$mid=(int)$_POST['moodid'];if($mid<0||!$id){echo"错误";exit;}$havemood=chk_mood($id);if($havemood==1){echo"您已表示达过了";exit;}$field='mood'.$mid;//查询是否有这个id$result=mysql_query("select1frommoodwhereid='{$id}'");$row=mysql_fetch_array($result);if(is_array($row)){$query=mysql_query("更新心情集".$field."=".$field."+1其中id=".$id);if($query){setcookie("心情".$id,$mid.$id,time()+3600);$query2=mysql_query("select*frommoodwhereid=$id");$rs=mysql_fetch_array($query2);$total=$rs['mood0']+$rs['mood1']+$rs['mood2']+$rs['mood3']+$rs['mood4'];$height=round(($rs[$field]/$total)*$moodpicheight);echo$height;}else{echo-1;}}else{mysql_query("INSERT进入心情(id,mood0,mood1,mood2,mood3,mood4)VALUES('{$id}','0','0','0','0','0')");$query=mysql_query("更新心情集".$field."=".$field."+1whereid=".$id);setcookie("mood".$id,$mid.$id,time()+3600);echo$moodpicheight;}这个文件很简单,基本和数据库打交道,逻辑也不是很复杂,大家可以往下仔细看。sql.php是一个通用的数据库信息存储文件,数据库ip,账号,密码,数据库名等$host="localhost";$db_user="root";$db_pass="";$db_name="demo";$timezone="Asia/Shanghai";$link=mysql_connect($host,$db_user,$db_pass);mysql_select_db($db_name,$link);mysql_query("SETnamesUTF8");header("Content-Type:text/html;字符集=utf-8");至此,核心代码全部贴出,高手略过。有需要的可以下载看看。对,还有数据库,好吧,DDL也贴出来CREATETABLE`mood`(`id`tinyint(5)NOTNULL,`mood0`int(9)unsignedNOTNULL,`mood1`int(9)unsignedNOTNULL,`mood2`int(9)unsignedNOTNULL,`mood3`int(9)unsignedNOTNULL,`mood4`int(9)unsignedNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;