搜尋
首頁後端開發php教程php+jQuery+Ajax实现点赞效果的方法

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
    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编程技巧:如何处理图片缩放Aug 19, 2023 am 10:36 AM

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

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

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

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

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

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

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

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

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

    PHP查询语句优化技巧分享PHP查询语句优化技巧分享Mar 24, 2024 pm 12:51 PM

    标题:PHP查询语句优化技巧分享在开发Web应用程序时,优化数据库查询是至关重要的环节,它能够显著提升应用程序的性能和响应速度。在PHP中,通过优化查询语句可以有效地减少数据库负担,提高系统性能。本文将分享一些PHP查询语句优化的技巧和具体的代码示例。1.使用索引在数据库表中适当地创建索引可以加快数据查询的速度。在PHP中,可以通过在查询语句中指定使用的索

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    倉庫:如何復興隊友
    4 週前By尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒險:如何獲得巨型種子
    4 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能

    mPDF

    mPDF

    mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),