PHP为网站添加ajax点赞
- 2015-11-29 18:00:34
- 幻音い
- 12110
温馨提示: 这篇文章于3238天前编写,现在可能不再适用或落后.
网站点赞见得很多了吧,wordpress也有文章点赞,这里我不针对wordpress而是针对普通的php网站。最近无聊在做一个小论坛程序集成在ACG Balrogs上面。想到了每次发帖新增一个点赞功能。
上图是我正在建设的一个讨论小版块,别看布局样式了,我正在努力修改呢...
点赞后的效果:
上图的大拇指是font字体,并不是图片
ajax点赞的基本原理就是,用cookie判断用户是否已经点赞,如果没有设置cookie那么就让数据库中点赞的字段加1,,如果已经点赞了那么就提示他已经点赞。原理很简单。接下来我用代码来演示。
首先建立3个php文件,分别为:
1.php(用户点赞页面)
2.php(点赞后台)
3.php(数据库连接)
将3.php都导入到1和2文件中
1.php:
<?php require_once '3.php';//引入数据库连接 ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AJAX点赞</title> </head> <body> <script> //这里ajax传递如果不清楚的话可以去 https://www.acgxt.com/162.html 去看看 这里就不多说了 var x = new XMLHttpRequest(); function a(){ x.open("POST","2.php"); x.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); x.send("good=true"); x.onreadystatechange = function(){ if(x.readyState==4){ if(x.status==200){ document.getElementById("good").innerHTML=x.responseText; } } } } </script> <button onclick="a();" id="good"> <?php //判断cookie是否设置,如果设置输出已赞,如果没有输出赞一个 if(isset($_COOKIE['good'])){ echo "已赞"; }else{ echo "赞一个"; }?> </button> </body> </html>
2.php:
<?php require_once '3.php';//引入数据库连接 if(@$_POST['good']){//1.php文件触发ajax传输后 if(isset($_COOKIE["good"])){//判断是否设置cookie echo "已赞过...";//如果设置,则返回已赞过 }else{//否则 //先查询数据库找到记录点赞次数的字段 $query = mysql_query("SELECT * FROM good WHERE good_id = 1"); //返回query的数组信息 $good = mysql_fetch_array($query); //自增1 也可以用 $good['good_num']+=1 $num = $good['good_num']+1; //修改 if(mysql_query("UPDATE good good SET good_num = $num WHERE `good`.`good_id` = 1;")){ //输出已赞 echo "已赞($num)"; //创建cookie good 设置时间为当前时间+72000000毫秒,约为3年左右吧.... setcookie("good",true,time()+72000000); }else{ echo "出错了..."; } } } ?>
3.php:
<?php//这个连接数据库不多说 $link = mysql_connect("localhost","root","123")or die("连接数据库失败"); mysql_select_db("good",$link); ?>
数据表:
CREATE TABLE IF NOT EXISTS `good` ( `good_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `good_num` int(20) NOT NULL DEFAULT '0', PRIMARY KEY (`good_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;INSERT INTO
good
(good_id
,good_num
) VALUES (1, 0);
复制上面的sql指令,或者自己新建一个字段用来记录点赞次数都行,,
点赞就到此结束了,希望大家能够理解,我得赶快去做我的小论坛咯……
阁下需要登录后才可以查看评论哦~