前端php页面

<?php
if(isset($_GET['id'])){
$id=$_GET['id'];
}
include('data/conn.php');
$sqls="select count from activity where id=$id";
$results=mysqli_query($link,$sqls);
$row=mysqli_fetch_assoc($results);
$ip= $_SERVER['REMOTE_ADDR'];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/saveclick.css" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<title>分享收集花瓣</title>
</head>
<body>
<div class="content">
<div class="word-2"></div>
<div class="ticket"></div>
<div class="count" id="count"><?php echo $row['count'] ?></div>
<div class="font">花瓣数量</div>
<div style="float: right;" onclick="collect();">
<div class="huaban"></div>
<div class="font ft-1" >送TA花瓣</div>
</div>
<div class="st" style="display:none;"><?php echo $id ?></div>
<div class="ip" style="display:none;"><?php echo $ip;?></div> </div>
</body>
<script type="text/javascript">
function collect(){
var id=$('.st').text();
var count=$("#count").text();
var ip=$('.ip').text();
$.post('data/data-count.php',{"id":id,"ip":ip},function(data){
if(count>=){
alert("攒花成功了,赶紧截图帮TA发到天甲网络微信公众号领奖去吧!");
window.location.href="ticket1.php";
}else{
if(data['msg']==){
alert("你已经送过TA花瓣了,分享到朋友圈让其他小伙伴一起为TA送花!");
}else if(data['msg']==){
alert('送TA花瓣失败了,请重新送花!');
}else{
alert("送花成功,赶紧分享到朋友圈喊其他小伙伴一起为TA送花吧!");
$("#count").html(parseInt(count)+);
}
} },'JSON'); }
</script>
</html>

数据库连接mysqli

<?php
$link=mysqli_connect('localhost','root','','38activity');
mysqli_query($link,"SET NAMES 'utf8'");
?>

后台处理数据页面实现计数更新以及ip防止重复记录

<?php
include('conn.php');
$id=$_POST['id'];
$ip=$_POST['ip'];
$ip_sql=mysqli_query($link,"select ip from ip where aid=$id and ip='$ip' ");
$count=mysqli_num_rows($ip_sql);
if($count==){ //没有投票
$sql="update activity set count=count+1 where id=$id" ;
mysqli_query($link,$sql);
$sql_in = "insert into ip(ip,aid) values ('$ip','$id')";
mysqli_query($link,$sql_in);
if(mysqli_insert_id($link)>){
$arr['msg'] = ;
$arr['success'] = '投票成功,谢谢您的参与';
echo json_encode($arr);
}else{
$arr['msg'] = ;
$arr['success'] = '操作失败,请重试';
echo json_encode($arr);
}
}else{
$arr['msg'] = ;
$arr['success'] = '您已经投票过了';
echo json_encode($arr);
}

数据库表

完整的ajax请求投票点赞功能的实现【数据库表一(票数)表二(ip限制重复投票)】的更多相关文章

  1. ajax请求锁屏功能

    我们有时候在进行ajax请求的时候希望页面不允许点击,等请求结束之后才可以进行点击,那么可以写: $(".cloudos-container").ajaxStart($.block ...

  2. php + ajax实现 帖子点赞功能

    知识: 一.首先页面需要加载jquery框架 二.ajax常用参数解释: ①.type:传输数据方式,get或者post ②.url:处理数据的PHP脚本 ③.data:传输的数据索引及值,值用js获 ...

  3. 较简单的用ajax修改和添加功能(链接数据库)

    修改和添加关于数据库的信息,可以用于任何的添加和修改 这些数据库和前面的随笔数据库是一样的 一.显示出数据库中的信息 (1)显示的效果也可以是用bootstrap的标签页显示(前面一定要引入boots ...

  4. 原生js发送ajax请求

    堕落了一阵子了,今天打开博客,发现连登录的用户名和密码都不记得了.2016年已过半,不能再这么晃荡下去了. 参加了网易微专业-前端攻城狮 培训,目前进行到大作业开发阶段,感觉举步维艰.但是无论如何,不 ...

  5. 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. js ajax请求传token

    js  ajax请求传token 方法一: headers: { Authorization: "BasicAuth " + token } 方法二: beforeSend: fu ...

  7. jQuery实现的分页功能,包括ajax请求,后台数据,有完整demo

    一:需求分析 1)需要首页,末页功能 2)有点击查看上一页,下一页功能 3)页码到当前可视页码最后一页刷新页面 二:功能实现思路 也是分为三部分处理 1)点击首页,末页直接显示第一页或者最后一页内容, ...

  8. ajax点赞功能

  9. BBS(第一天)项目之 注册功能实现通过forms验证与 前端ajax请求触发查询数据库判断用户是否存在的功能实现

    1.BBS项目之注册功能通过forms验证 from django import forms from blog.models import User from django.contrib.auth ...

随机推荐

  1. Linux企业集群用商用硬件和免费软件构建高可用集群PDF

    Linux企业集群:用商用硬件和免费软件构建高可用集群 目录: 译者序致谢前言绪论第一部分 集群资源 第1章 启动服务 第2章 处理数据包 第3章 编译内容 第二部分 高可用性 第4章 使用rsync ...

  2. Android应用崩溃后异常捕获并重启并写入日志

    在Android开发时,有时会因为一些异常导致应用报错,偶尔会因为错误 而崩溃,导致用户体验下降,为了解决这问题,我们就要对这样的异常处理: 代码如下: CrashHandler.java impor ...

  3. [转] EJB到底是什么,真的那么神秘吗??

    原文地址:http://blog.csdn.net/jojo52013145/article/details/5783677 1. 我们不禁要问,什么是"服务集群"?什么是&quo ...

  4. MySQL的Sleep进程

    php的垃圾回收机制,其实只针对于php本身. 对于mysql,php没权利去自动去释放它的东西. 如果你在页面执行完毕前不调用mysql_close(),那么mysql那边是不会关闭这个连接的. 如 ...

  5. 【转】解决eclipse无法设置NDK问题

    参考:http://jingyan.baidu.com/album/4d58d5413000a09dd4e9c0fe.html?picindex=1  到android sdk官网下载r23版本的ad ...

  6. Arraylist Vector Linkedlist区别和用法 (转)

    ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢 ...

  7. Leetcode 306. Additive Number

    Additive number is a string whose digits can form additive sequence. A valid additive sequence shoul ...

  8. BZOJ1922 [Sdoi2010]大陆争霸

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  9. 硬盘分区时GPT和MBR的区别/选择

    最明显的区别是MBR最大支持2T的硬盘,而GPT则更大. 1.最先出现在Windows8中设置新磁盘,系统会询问你是想要使用MBR还是GPT分区,GPT是一种新的硬盘分区标准.GPT带来了很多新特性, ...

  10. ubuntu安装搜狗输入法

    搜狗官网上说14.04直接安装deb包就行,无需配置. 但是经实践发现仍然需要配置一下== 命令: ibm@IBM:~$ sudo dpkg --get-selections | grep fcitx ...