php + ajax实现 帖子点赞功能

知识:

一、首先页面需要加载jquery框架

二、ajax常用参数解释:

①、type:传输数据方式,get或者post

②、url:处理数据的PHP脚本

③、data:传输的数据索引及值,值用js获取,一般此属性为json串或字符串

④、async:参数为布尔类型,默认为true,即异步传输,浏览器不锁定

⑤、complete:参数为方法,跳转的脚本执行完成后的回调函数

⑥、success:参数为方法,跳转的脚本执行成功后的回调函数

⑦、error:参数为方法,跳转的脚本执行失败后的回调函数

三、脚本处理完成后将页面需要的数据return,之后在前端页面根据需求实现局部刷新,而不是进行跳转刷新这是ajax最强大的地方

 

 

html代码部分:

<?php
$id = $_GET['id'];
require_once 'mysqlHelper.php';
$db = new mysqlHelper('localhost','root','root','dianzan');
$sql = "select * from news where id = '$id'";
$news = $db->GetOneData($sql);



?>
<!doctype html>
<html>
<head>
<script src="jquery-1.9.1.min.js"></script>
<meta charset="UTF-8">
</head>
<body>
<h1><?php echo $news['title'];?></h1>
<pre>
<?php echo $news['content'];?>

</pre>
<input type="hidden" name="id" value="<?php echo $id;?>">
点赞数:<span id="s"><?php echo $news['dianzan'];?></span>
<button id="btn">点赞</button>
</body>
</html>

js代码:

$("#btn").click(function(){
	
	$.ajax({
		
		url:"index.php",
		type:"POST",
		data:{id:<?php echo $id;?>},
		async:false,
		success:function(data){
			if(data === false){
				alert('点赞失败!');location.href='dianzan.php?id=<?php echo $id;?>';
			}else{
				alert('点赞成功!');$("#s").html(data);
			}
		}
	})
})

  

 

 

PHP代码部分:

<?php
header("Content-type:text/html;charset=utf-8");
require_once 'mysqlHelper.php';
$db = new mysqlHelper('localhost','root','root','dianzan');
$id = $_POST['id'];
$sql = "UPDATE news SET dianzan = dianzan +1 WHERE id = '$id'";

$res = $db->execSql($sql);
if($res){
	
	$dz = $db->getOneData("select * from news where id = '$id'");
	$dz = $dz['dianzan'];
	echo $dz;
	
}else{
	return false;
	
}




?>

  

posted @ 2017-06-01 22:15  程昱仲德  阅读(3527)  评论(1编辑  收藏  举报