php+mysql+ajax点赞和踩的功能

WBOY
Freigeben: 2016-06-23 13:44:24
Original
870 Leute haben es durchsucht

嫌麻烦的也可以:点击下载


HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script src="common/js/jquery.js" type="text/javascript"></script><script language="JavaScript" type="text/javascript">jQuery(function($) {	//这两个是鼠标放上去的效果	$(".zhan").hover(function(){ 		$(this).children("b").toggle();	}); 	$(".cai").hover(function(){	 	$(this).children("b").toggle();	});  }); </script><script type="text/javascript"> <!--这两个点击事件可以改进的,因为事件问题,所以就弄了两个点击事件  $(document).ready(function(e) {	//点赞(给力)	$('.zhan').click(function(){	var zhan=$(this);	var left = parseInt($(this).offset().left)+10, top =  parseInt($(this).offset().top)-10, obj=$(this);	$(this).append('<div id="zhan"><b>+1<\/b></\div>');	$('#zhan').css({'position':'absolute','z-index':'1', 'color':'#C30','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){	$(this).fadeIn('fast').remove();	var Num = parseInt(obj.find('span').text());	Num++;	obj.find('span').text(Num);	});$.ajax({  	url:"ajax.php?action=zan",  	type:"post",  	data:"answer_id="+$(this).attr("alt"),  	success:function(datas){  		zhan.unbind('click');  		zhan.parent().parent().siblings().children().children().unbind('click');		zhan.parent().parent().siblings().children().children().attr("class","evaluate-inner");  		zhan.attr("class","evaluate-inner"); 	}  }); }); //踩(不给力) $('.cai').click(function(){	var cai=$(this);	var left = parseInt($(this).offset().left)+10, top =  parseInt($(this).offset().top)-10, obj=$(this);	$(this).append('<div id="cai"><b>-1<\/b></\div>');	$('#cai').css({'position':'absolute','z-index':'1', 'color':'#7DAAD5','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){	$(this).fadeIn('fast').remove();	var Num = parseInt(obj.find('span').text());	Num--;	obj.find('span').text(Num);	}); $.ajax({  	url:"ajax.php?action=cai",  	type:"post",  	data:"answer_id="+$(this).attr("alt"),  	success:function(datas){  		cai.unbind('click');  		cai.parent().parent().siblings().children().children().unbind('click');		cai.parent().parent().siblings().children().children().attr("class","evaluate-inner");  		cai.attr("class","evaluate-inner"); 	}  }); }); }); //--></script><!--给力开始--><span data-evaluate="0" id="evaluate-1908165795" class="evaluate" alog-action="qb-zan-btn"> <span class="evaluate-outer"><!-----判断对应的回答的id是否在自己创建的存储赞和踩数据的php文件,如果赞或者踩存在一个的话就不能再单击----><span class="evaluate-inner {OVOV:if $answer_datas.ans_id|in_array:$zan_list or $answer_datas.ans_id|in_array:$cai_list/}{OVOV:else/}zhan{OVOV:/if/}" alt="{OVOV:$answer_datas.ans_id/}"> <b style="display:none" class="evaluate-tip evaluate-num-fixed">给力</b> <b class="evaluate-num evaluate-num-fixed"><span>{OVOV:$answer_datas.goods/}</span></b> </span> </span> </span><!--不给力开始--><span data-evaluate="0" id="evaluate-bad-1908165795" class="evaluate evaluate-bad" alog-action="qb-evaluate-outer"> <span class="evaluate-outer"> <span class="evaluate-inner {OVOV:if $answer_datas.ans_id|in_array:$zan_list or $answer_datas.ans_id|in_array:$cai_list/}{OVOV:else/}cai{OVOV:/if/}" alt="{OVOV:$answer_datas.ans_id/}"> <b style="display: none;" class="evaluate-tip evaluate-num-fixed">不给力</b> <b class="evaluate-num evaluate-num-fixed" style="display: inline-block;"><span>{OVOV:$answer_datas.bads/}</span></b> </span> </span> </span><!--评论回答开始-->
Nach dem Login kopieren



HTML对应的php文件


<?php $action=$_GET['action'];//获取get方式传过来的actionrequire_once("array/ovovsys_zan.php");switch($action){	case 'detail':		/*****赞开始****/		$zan_list = json_decode(str_replace("'",'"',$zan_json),true);		$zan_lists=array();		foreach($zan_list as $key=>$value){			if($value['uid']==$uid){		 		$zan_lists[]=$value['answer_id'];			}		} 		$smarty->assign('zan_list',$zan_lists);//查询当前登录的会员的uid对应的点赞的回答 		/*****赞结束****/ 		/*****踩开始****/		$cai_list = json_decode(str_replace("'",'"',$cai_json),true);		$cai_lists=array();		foreach($cai_list as $key=>$value){			if($value['uid']==$uid){		 		$cai_lists[]=$value['answer_id'];			}		} 		$smarty->assign('cai_list',$cai_lists);//查询当前登录的会员的uid对应的踩的回答 		/*****踩结束****/		$smarty->display('自己的静态页面');		exit();	break;}?>
Nach dem Login kopieren


ajax文件:

<?php require_once("array/ovovsys_zan.php");//这里引用array文件夹中的数组文件$action=trim($_GET['action']);if(empty($action)){	echo '<font color=red>参数错误!';exit();}switch($action){	 case 'zan'://点赞(给力)		//$zan_json是数组文件中设置的数组变量,存的是json数据----1		$zan_array = json_decode(str_replace("'",'"',$zan_json),true);				//获取当前的会员的uid-----2		$user_answer['uid']=$uid;		//获取对应的赞的回答的id----2		$user_answer['answer_id']=$_POST['answer_id'];				//将会员的uid和答案的id一块的数组放到指定的数组中----3		$zan_array[]=$user_answer;				$config_path = 'shuzu/ovovsys_zan.php';		if(!file_exists($config_path)){			$Base->ErrorMsg('文件错误:shuzu/ovovsys_zan.php 不存在!');exit();		}				//将指定的数组转换成json数据,并且将双引号转换成单引号,不然放到数组文件中后会出错----4		$zan_new_json = str_replace('"',"'",json_encode($zan_array));				$fp = @fopen($config_path,'r+');		if(!$content = @fread($fp,filesize($config_path))){			$Base->ErrorMsg('无法读取shuzu/ovovsys_zan.php文件!');exit();		}				//执行替换,将数组文件中对应的json数据----5		$content = str_replace("\$zan_json = \"{$zan_json}\"","\$zan_json = \"{$zan_new_json}\"",$content);		$fp = @fopen($config_path,'w+'); 		@fwrite($fp,$content); 				//修改对应的数据表中的数据----5		$Db->ThisQuery("update `".$db_prefix."ask_answers` set `goods`=`goods`+1 where `ans_id`=".$user_answer['answer_id']."");		exit();	break;	 case 'cai'://踩(不给力)		$cai_array = json_decode(str_replace("'",'"',$cai_json),true);		$user_answer['uid']=$uid;		$user_answer['answer_id']=$_POST['answer_id'];		$cai_array[]=$user_answer;		$config_path = 'shuzu/ovovsys_zan.php';		if(!file_exists($config_path)){			$Base->ErrorMsg('文件错误:shuzu/ovovsys_zan.php 不存在!');exit();		}		$cai_new_json = str_replace('"',"'",json_encode($cai_array));		$fp = @fopen($config_path,'r+');		if(!$content = @fread($fp,filesize($config_path))){			$Base->ErrorMsg('无法读取shuzu/ovovsys_zan.php文件!');exit();		}		$content = str_replace("\$cai_json = \"{$cai_json}\"","\$cai_json = \"{$cai_new_json}\"",$content);		$fp = @fopen($config_path,'w+'); 		@fwrite($fp,$content); 		$Db->ThisQuery("update `".$db_prefix."ask_answers` set `bads`=`bads`-1 where `ans_id`=".$user_answer['answer_id']."");		exit();	break;}?>
Nach dem Login kopieren


对应的数据文件(因为创建数据库时没有创建踩和赞的再断,所以这里就用php文件存变量的方式保存了一下答案对应的赞和踩的数据,其中包含用户的id和答案的id)

<?php $zan_json = "";$cai_json = "";?>你没看错,就是两个变量
Nach dem Login kopieren

如果嫌复制着麻烦的话,也可以点击下载压缩文件,亲,不要积分的哟!



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!