首页 后端开发 php教程 php+jQuery+Ajax实现点赞效果的方法

php+jQuery+Ajax实现点赞效果的方法

Jun 20, 2016 pm 01:01 PM
php技巧

php+jQuery+Ajax实现点赞效果的方法,

结合实例形式详细介绍了php结合jQuery的ajax无刷新提交实现点赞功能的具体步骤与相关技巧,

需要的朋友可以参考下

php+jQuery+Ajax实现点赞效果具体如下:

数据库设计

先准备两张表,pic表保存的是图片信息,包括图片对应的名称、路径以及图片“赞”总数,pic_ip则记录用户点击赞后的IP数据。

CREATE TABLE IF NOT EXISTS `pic` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `pic_name` varchar(60) NOT NULL,
 `pic_url` varchar(60) NOT NULL,
 `love` int(11) NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `pic_ip` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `pic_id` int(11) NOT NULL,
 `ip` varchar(40) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

登录后复制

index.php

在index.php中,我们通过PHP读取pic表中的图片信息并展示出来,结合CSS,提升页面展示效果。

<?php include_once("connect.php");
   $sql = mysql_query("select * from pic");
   while($row=mysql_fetch_array($sql)){
     $pic_id = $row['id'];
     $pic_name = $row['pic_name'];
     $pic_url = $row['pic_url'];
     $love = $row['love'];
   ?>
   
登录后复制
  • <?php echo $pic_name;?>

  • CSS中,我们将定义鼠标滑向和离开红心按钮的动态效果,并定位按钮的位置。

    .list{width:760px; margin:20px auto}
    .list li{float:left; width:360px; height:280px; margin:10px; position:relative}
    .list li p{position:absolute; top:0; left:0; width:360px; height:24px; line-height:24px;
    background:#000; opacity:.8;filter:alpha(opacity=80);}
    .list li p a{padding-left:30px; height:24px; background:url(images/heart.png) no-repeat
    4px -1px;color:#fff; font-weight:bold; font-size:14px}
    .list li p a:hover{background-position:4px -25px;text-decoration:none}
    
    
    登录后复制

    jQuery代码

    当用户点击自己喜欢的图片上的红心按钮时,向后台love.php发送ajax请求,请求响应成功后,更新原有的数值

    $(function(){
      $("p a").click(function(){
        var love = $(this);
        var id = love.attr("rel"); //对应id
        love.fadeOut(300); //渐隐效果
        $.ajax({
          type:"POST",
          url:"love.php",
          data:"id="+id,
          cache:false, //不缓存此页面
          success:function(data){
            love.html(data);
            love.fadeIn(300); //渐显效果
          }
        });
        return false;
      });
    });
    
    
    登录后复制

    love.php

    后台love.php接收前端的ajax请求,根据提交的图片id值,查找IP表中是否已有该用户ip的点击记录,如果有则告诉用户已“赞过了”,反之,则进行一下操作:

    1、更新图片表中对应的图片love字段值,将数值加1。
    2、将该用户IP信息写入到pic_ip表中,用以防止用户重复点击。
    3、获取更新后的赞值,即赞该图片的用户总数,并将该总数输出给前端页面。

    include_once("connect.php"); //连接数据库
    $ip = get_client_ip(); //获取用户IP
    $id = $_POST['id'];
    if(!isset($id) || empty($id)) exit;
    $ip_sql=mysql_query("select ip from pic_ip where pic_id='$id' and ip='$ip'");
    $count=mysql_num_rows($ip_sql);
    if($count==0){ //如果没有记录
      $sql = "update pic set love=love+1 where id='$id'"; //更新数据
      mysql_query( $sql);
      $sql_in = "insert into pic_ip (pic_id,ip) values ('$id','$ip')"; //写入数据
      mysql_query( $sql_in);
      $result = mysql_query("select love from pic where id='$id'");
      $row = mysql_fetch_array($result);
      $love = $row['love']; //获取赞数值
      echo $love;
    }else{
      echo "赞过了..";
    }
    
    
    登录后复制

    我上传的附件中 数据库SQL 你可以直接建立test 数据库UTF8编码的,然后把SQL文件导入进去。修改一下connect.php中数据库的连接信息即可。

    总结:

    其实就是发了一个ajax请求,比如你要赞一个商品。商品表肯定有一个计数的字段。你发一个请求过去把这个字段+1

    该成功了就返回一个现在的数。然后把页面改一下就成了

    function Zan( goodsId, a ){
      $.post( "/goods/zan/"+goodsId, null,function( ret ){
         if( ret.status == 'ok' )
          $(a).html( ret.zannum);
         else
          alert( ret.data );
      },'json' );
    }
    
    
    登录后复制

    希望本文所述对大家学习php有所帮助。


    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    PHP中的文件上传和下载技巧详解 PHP中的文件上传和下载技巧详解 Jun 25, 2023 pm 05:57 PM

    PHP是一种非常流行的服务器端编程语言,它在网站开发中被广泛应用。其中,文件上传和下载是网站常用的功能之一,而PHP提供了丰富的函数和技巧来实现这些功能。在本文中,我们将详细介绍PHP中的文件上传和下载技巧,让你能够更加高效地开发网站。文件上传文件上传是指把本地计算机中的文件发送到远程服务器,上传文件后我们可以对这些文件进行存储、处理和展示等操作。在PHP中

    PHP快手API接口调用技巧:如何处理接口返回的错误信息 PHP快手API接口调用技巧:如何处理接口返回的错误信息 Jul 20, 2023 pm 11:22 PM

    PHP快手API接口调用技巧:如何处理接口返回的错误信息在使用PHP进行快手API接口调用时,我们经常会遇到接口返回错误的情况。对于处理接口返回的错误信息,我们需要进行合适的处理和反馈,以便提高应用程序的稳定性和用户体验。本文将介绍一些处理接口返回错误信息的技巧,并提供相应的代码示例。使用try-catch捕获异常在调用API接口时,可能会发生一些异常错误,

    PHP中的分页技术在框架中的应用方法详解 PHP中的分页技术在框架中的应用方法详解 Jun 09, 2023 am 11:40 AM

    随着互联网的快速发展,越来越多的网站需要实现数据分页功能,以提高用户的浏览体验。在Web开发中,PHP是最流行的服务器端编程语言之一,而数据分页功能是PHP开发中不可缺少的技术。本文将介绍PHP中的分页技术在框架中的应用方法,并对比不同的分页方案的优缺点。一、传统PHP分页方法在传统PHP开发中,实现数据分页功能需要编写较多的代码,并且需要在每个页面中进行重

    深入了解PHP中替换换行的技巧 深入了解PHP中替换换行的技巧 Mar 20, 2024 pm 06:42 PM

    替换PHP中的换行符是在实际开发中经常会遇到的问题,特别是在处理文本数据时。换行符在不同操作系统中的表示方式可能不一样,通常在Windows系统中是"",在Linux系统中是""。因此,我们需要对换行符进行统一处理,以确保文本数据的格式正常。本文将深入探讨PHP中替换换行符的技巧,并提供具体的代码示例。1.使用PHP内置函数处理换行符PHP提供了一些内置函

    PHP编程技巧:快速定位数组缺失数字的方法 PHP编程技巧:快速定位数组缺失数字的方法 Mar 01, 2024 pm 04:27 PM

    PHP编程技巧:快速定位数组缺失数字的方法在编程中,经常会遇到需要检查数组中是否缺少某些数字的情况。这时候,我们需要一种快速有效的方法来定位数组中缺失的数字,以便及时处理。本文将介绍一种基于PHP的编程技巧,通过具体的代码示例来展示快速定位数组中缺失数字的方法。1.方法一:使用循环遍历数组首先,我们可以通过循环遍历数组的方式来检查数组中缺失的数字。具体步骤

    PHP编程技巧:如何处理图片缩放 PHP编程技巧:如何处理图片缩放 Aug 19, 2023 am 10:36 AM

    PHP编程技巧:如何处理图片缩放在现代网页设计中,图片是不可或缺的一部分,而图片缩放是常见的操作之一。无论是在展示图片集合,还是在响应不同大小设备的需求上,图片缩放都起到了重要的作用。本文将介绍如何使用PHP编程语言处理图片缩放,并附上代码示例供参考。一、使用GD库进行图片缩放GD库是PHP中一个强大的图像处理库,我们可以使用它来实现图片缩放功能。首先,确保

    PHP高并发处理技巧解析 PHP高并发处理技巧解析 Aug 10, 2023 pm 06:53 PM

    PHP高并发处理技巧解析随着互联网的发展,对于网站的并发访问量要求也越来越高。而PHP作为一种开发网站的编程语言,面对高并发的访问压力,需要一些特殊的处理技巧来提高性能和稳定性。本文将介绍一些PHP高并发处理的技巧,并提供代码示例。使用PHP-FPMPHP-FPM(FastCGIProcessManager)是PHP官方提供的一个进程管理器,它可以有效地

    掌握PHP开发的50个功能实现技巧与经验分享 掌握PHP开发的50个功能实现技巧与经验分享 Nov 22, 2023 pm 04:51 PM

    掌握PHP开发的50个功能实现技巧与经验分享作为一名PHP开发者,我们时刻都在追求高效、高质量的代码实现。为了提高开发效率和代码质量,我们需要积累一些经验和技巧,以应对各种复杂的开发需求和挑战。在本文中,我将分享50个实现各种功能的PHP开发技巧和经验,希望对大家的PHP开发之路有所帮助。使用合适的框架:选择和熟悉一个适合自己的PHP框架,可以提高开发效率和

    See all articles