php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)_php实例

来源:脚本之家  责任编辑:小易  

AJAX就是一种网页和后台服务器交流的协议,一个简单的AJAX发送代码post{'服务器的网址','{data:'这里是要发送的数据'}',function(return){}{return 是后台服务器接收到你网页发的数据后返回的数据}}PHP的echo输出的结果就是返回网页的return数据,格式是直接做返回值PHP要返回数组就要用json封装,代码是 json_encde(数组);之后网页接受的是json格式的字符串,要自己转换为json数组www.zgxue.com防采集请勿采集本网。

记录每个赞的点赞用户,以及对赞的数量统计

6.学习mysql 两个星期(前一周学习数据库知识,后一周学习sql语句)。以上时间还算比较充足,能力好点的一个月可以全部学完。每一门技术入门都很容易,但是想精通,或煮有些经验的话都是必须经历N个项目

首先判断用户是否点赞。根据是否点赞,载入不同的html,调用不同的方法

你都会?做得好吗?以后不要跟人家说“我都会” 我看到这样的,直接就否定了

已点赞

如果已点赞,显示已点赞的html,进行取消点赞操作

我觉得思路只能是 用JS设一个定时器,比如10秒,每10秒就主动使用AJAX去数据库查询一下最近的出票记录数据库(排队队列数据库),而每次成功出票都主动更新一下这个数据库。

未点赞

如果未点赞,显示未点赞的html,进行点赞操作

提交给php处理就可以了 使用超级全局变量$_FILES获得,下面是个简单例子,信息验证和入库处理自己写 获取文件信息 file_name=$_FILES['file1'][''name''];tmp_path=$_FILES['file1']['tmp_name'];存储文件

对于不同操作,对数据库进行增加或减少操作。同时对于不同用户的点赞,进行增加记录或删除记录操作。通过控制不同按钮的背景,来显示不同的效果。通过记录不同用户的用户id和赞的id之间的关系,进行不同点赞的限制。

在处理输出前加 header('Content-type:text/html;charset=GB2312');

效果演示

当用户id为1时,进行点赞,点赞数加1

在这里插入图片描述

更改用户id,当id为2时,用户1的用户已进行了点赞,点赞数在用户1点赞基础上增加1

在这里插入图片描述

数据库

数据库,分为两个数据表。一个进行对点赞数的统计,一个进行不同用户的点赞记录。

两个数据表的详细信息

在这里插入图片描述

连接数据库

$con = new mysqli('localhost','root','','test');if (!$con){ die('连接数据库失败,失败原因:' . mysqli_error());}else { // echo "连接成功";}

对用户是否点赞进行判断(操作页面)

对数据库的信息进行提取

//假设用户编号为1$uId="1";//假设赞编号为1$zanId="1";//查找赞id为1的点赞数$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId ");$countResult=mysqli_fetch_array($count);$countZan=$countResult['count'];//查找改用户是否对赞id为1 点赞$uIdLike=mysqli_query($con, "SELECT * FROM zanRecord WHERE uId=$uId ");$result=mysqli_fetch_array($uIdLike);

对用户是否点赞进行判断,并输出不同的html

//点赞if (isset($result)) { $showZan.=<<<html <div class="dolikeDIV" id="dolikeDIV"> <button id="dolike" οnclick="zanDel()"></button> <span id="zan">$countZan</span> </div>html; }//没点赞else{ $showZan.=<<<html <div class="dolikeDIV" id="dolikeDIV"> <button id="donolike" οnclick="zan()"></button> <span id="zan">$countZan</span> </div>html;}echo $showZan; ?>

css样式

#dolike, #donolike { width:30px; height:30px; margin-left:20px; float:left;}#donolike {background:url(./images/nolike.png); background-size:30px 30px; }#dolike{background:url(./images/like.png); background-size:30px 30px; }

调用的ajax方法

传递需要的数据,这里传递的时zanId 和uId

记得引入jq文件

点赞

function zan(){$.ajax({type:"POST",url:"./likeSever.php",data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()},success:function(text){$("#dolikeDIV").html(text);}});}

取消点赞

function zanDel(){$.ajax({type:"POST",url:"./disSever.php",data:{'zanId':$("#zanId").val(),'uId':$("#uId").val()},success:function(text){$("#dolikeDIV").html(text);}});}

处理代码

点赞处理

//更新赞总数的数据 mysqli_query($con,"UPDATE zanCount SET count = count+1 WHERE zanId=$zanId"); //添加一条点赞记录 mysqli_query($con,"INSERT INTO zanRecord(zanId,uId) VALUES($zanId, $uId); "); //查找赞的总数 @$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); @$countResult=mysqli_fetch_array($count); @$countZan=$countResult['count']; //更改输出的html $show=""; $show=<<<html <button id="dolike" οnclick="zanDel()"></button><span id="zan">$countZan</span>html; echo $show;

取消点赞处理

//更新赞总数的数据 mysqli_query($con,"UPDATE zanCount SET count = count-1 WHERE zanId=$zanId"); //添加一条点赞记录 mysqli_query($con,"DELETE FROM zanRecord WHERE zanId=$zanId AND uId=$uId "); //查找赞的总数 @$count=mysqli_query($con, "SELECT count FROM zanCount WHERE zanId=$zanId "); @$countResult=mysqli_fetch_array($count); @$countZan=$countResult['count']; //更新html $show=""; $show.=<<<html <button id="donolike" οnclick="zan()"></button><span id="zan">$countZan</span>html;

点赞的图片

图片自己画的,有点不太美观

like.pngnolike.png

jq下载地址

完整demo下载

到此这篇关于php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)的文章就介绍到这了,更多相关php+mysql+ajax 局部刷新点赞内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

getJSON("action.php",function(json){for(var i=0;i;i+){alert("id:"+json[i].id);alert("user:"+json[i].user);alert("contant:"+json[i].contant);alert("time:"+json[i].time);}});你这样,不是又执行一遍 action.php 么,没有传值,当然插入空记录了内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • ajax+php数据交互并且局部刷新页面的实现详解
  • jquery+ajax实现实用的点赞插件代码
  • php+jquery+ajax实现点赞效果的方法(附源码下载)
  • jquery+ajax实现文章点赞功能的方法
  • php+mysql结合ajax实现点赞功能完整实例
  • php callable强制指定回调类型的方法
  • php去除换行(回车换行)的三种方法
  • php 生成微信红包代码简单
  • php中把美国时间转为北京时间的自定义函数分享
  • 分享10段php常用代码
  • thinkphp实现分页显示功能
  • jquery+ajax+php“喜欢”评级功能实现代码
  • thinkphp5框架设置404、403等http状态页面的方法
  • 浅谈php实现大流量下抢购方案
  • thinkphp之getfield详解
  • ajax(josn)+php+mysql疑问,求高人指点
  • PHP + ajax + Mysql的原理是怎么样的?
  • 请问利用Ajax+JS+PHP+MySQL能做出这样的游戏么?
  • 现在学PHP+MYSQL好还是 AJAX好?
  • 自学 html css javascript jquery ajax php mysql需要多长时间
  • 为什么JavaScript、PHP、MySQL、Ajax我都会,投简历还是没人理我?
  • 一个PHP买票位置怎么用PHP+MYsql+AJAX构架?
  • jQuery+ajax+mysql+php更新数据
  • php+mysql+ajax乱码。。。
  • php+ajax+mysql【昵称比较问题】
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程ajax+php数据交互并且局部刷新页面的实现详解jquery+ajax实现实用的点赞插件代码php+jquery+ajax实现点赞效果的方法(附源码下载)jquery+ajax实现文章点赞功能的方法php+mysql结合ajax实现点赞功能完整实例php callable强制指定回调类型的方法php去除换行(回车换行)的三种方法php 生成微信红包代码简单php中把美国时间转为北京时间的自定义函数分享分享10段php常用代码thinkphp实现分页显示功能jquery+ajax+php“喜欢”评级功能实现代码thinkphp5框架设置404、403等http状态页面的方法浅谈php实现大流量下抢购方案thinkphp之getfield详解php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php从数组中删除元素的四种方法实zend framework入门知识点小结php fseek函数读取大文件两种方法解决laravel上传图片之后,目录有图片,但是thinkphp框架对接支付宝即时到账接口回调yii权限控制的方法(三种方法)zend framework教程之响应对象的封装zendyii2框架restful api 格式化响应,授权认windows中为php安装mongodb与memcacheci映射(加载)数据到view层的方法laravel清除视图缓存的代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved