首頁 後端開發 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

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱門文章

    <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系統,解釋
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1423
    52
    Laravel 教程
    1321
    25
    PHP教程
    1269
    29
    C# 教程
    1249
    24
    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系統中是&quot;&quot;,在Linux系統中是&quot;&quot;。因此,我們需要對換行符號進行統一處理,以確保文字資料的格式正常。本文將深入探討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