最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery+Ajax+PHP“喜歡”評級功能實現(xiàn)代碼

 更新時間:2015年10月08日 14:39:07   投稿:lijiao  
本文基于jQuery,通過PHP與mysql實現(xiàn)了一個評級功能,是一個簡單的非常好的ajax應用實例,需要的朋友可以參考下

本文章來給大家介紹一個jQuery+Ajax+PHP實現(xiàn)“喜歡”評級功能代碼,用戶點擊頁面中自己喜歡的圖片上的紅心按鈕時,前端頁面向后臺發(fā)送一個ajax請求,后臺PHP程序接收請求后,查詢IP庫中是否已經(jīng)有該用戶的點擊記錄,如果沒有,則將對應的數(shù)值+1,同時將該用戶IP信息寫入IP庫,反之則告訴用戶已經(jīng)“喜歡過了”。

數(shù)據(jù)庫設計
先準備兩張表,pic表保存的是圖片信息,包括圖片對應的名稱、路徑以及圖片“喜歡”總數(shù),pic_ip則記錄用戶點擊喜歡后的IP數(shù)據(jù)。

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表中的圖片信息并展示出來,結(jié)合CSS,提升頁面展示效果。
代碼如下

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="keywords" content="jquery">
<meta name="description" content="">
<title>jQuery+Ajax+PHP實現(xiàn)"喜歡"評級</title>
<link rel="stylesheet" type="text/css" href="../css/main.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("p a").click(function(){
var love = $(this);
var id = love.attr("rel");
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;
});
});
</script>
<style type="text/css">
.clear{clear:both}
.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}
</style>
</head>
<body>
<div id="main">
<ul class="list">
<?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'];
?>
<li><img src="images/<?php echo $pic_url;?>" alt="<?php echo $pic_name;?>"><p><a href="#" title="我喜歡" class="img_on" rel="<?php echo $pic_id;?>"><?php echo $love;?></a></p></li>
<?php }?>
</ul>
</div>
</body>
</html>

CSS中,我們將定義鼠標滑向和離開紅心按鈕的動態(tài)效果,并定位按鈕的位置。
代碼如下

.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發(fā)送ajax請求,請求響應成功后,更新原有的數(shù)值。
代碼如下

$(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請求,根據(jù)提交的圖片id值,查找IP表中是否已有該用戶ip的點擊記錄,如果有則告訴用戶已“喜歡過了”,反之,則進行一下操作:
1、更新圖片表中對應的圖片love字段值,將數(shù)值加1。
2、將該用戶IP信息寫入到pic_ip表中,用以防止用戶重復點擊。
3、獲取更新后的love值,即喜歡該圖片的用戶總數(shù),并將該總數(shù)輸出給前端頁面。
代碼如下 

<?php
$host="localhost";
$db_user="root";
$db_pass="";
$db_name="demo";
$timezone="Asia/Shanghai";
$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");
?>
 
 
<?php
include_once("connect.php");
$ip = get_client_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 "喜歡過了..";
}
//獲取用戶真實IP
function get_client_ip() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}
?>

代碼中g(shù)et_client_ip()函數(shù)是用來獲取用戶的真實IP。

以上就是關(guān)于php 實現(xiàn)“喜歡”評級功能的各個關(guān)鍵代碼,希望大家仔細研究,從中有所收獲。

相關(guān)文章

  • PHP實現(xiàn)簡易圖形計算器

    PHP實現(xiàn)簡易圖形計算器

    這篇文章主要為大家詳細介紹了PHP實現(xiàn)簡易圖形計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 有道搜索和IP138的IP的API接口(PHP應用)

    有道搜索和IP138的IP的API接口(PHP應用)

    原理就是通過php模擬瀏覽器獲取ip地址歸屬地,需要的朋友可以參考下
    2012-11-11
  • 在Thinkphp中使用ajax實現(xiàn)無刷新分頁的方法

    在Thinkphp中使用ajax實現(xiàn)無刷新分頁的方法

    這篇文章主要介紹了在Thinkphp中使用ajax實現(xiàn)無刷新分頁的方法的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Mac下快速搭建PHP開發(fā)環(huán)境步驟詳解

    Mac下快速搭建PHP開發(fā)環(huán)境步驟詳解

    這篇文章主要介紹了Mac下快速搭建PHP開發(fā)環(huán)境步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 教你如何開啟shopnc b2b2c 偽靜態(tài)

    教你如何開啟shopnc b2b2c 偽靜態(tài)

    最近要給一個shopnc網(wǎng)站開啟偽靜態(tài),用的是shopnc b2b2c,在網(wǎng)上搜索了好多shopnc開啟偽靜態(tài)的方法,但都是針對shaopnc c2c的,沒有關(guān)于shopnc b2b2c的,最后終于找到了shopnc b2b2c怎么開啟偽靜態(tài)。
    2014-10-10
  • ThinkPHP3.1基礎知識快速入門

    ThinkPHP3.1基礎知識快速入門

    ThinkPHP是一個快速、簡單的基于MVC和面向?qū)ο蟮妮p量級PHP開發(fā)框架,擁有眾多的原創(chuàng)功能和特性,為WEB應用開發(fā)提供了強有力的支持。是眾多PHP開發(fā)人員的首選這篇文章主要介紹了ThinkPHP3.1入門知識,需要的朋友可以參考下
    2014-06-06
  • php實現(xiàn)可以設置中獎概率的抽獎程序代碼分享

    php實現(xiàn)可以設置中獎概率的抽獎程序代碼分享

    這篇文章主要介紹了一個抽獎程序,要求一等獎的中獎概率是0.12%,二等獎中獎概率是3%,三等獎中獎概率是12%,其他中獎概率是都是謝謝惠顧
    2014-01-01
  • PHP 面向?qū)ο蟪绦蛟O計(oop)學習筆記 (四) - 異常處理類Exception

    PHP 面向?qū)ο蟪绦蛟O計(oop)學習筆記 (四) - 異常處理類Exception

    異常經(jīng)常被用來處理一些在程序正常執(zhí)行中遇到的各種類型的錯誤。比如做數(shù)據(jù)庫鏈接時,你就要處理數(shù)據(jù)庫連接失敗的情況。使用異??梢蕴岣呶覀兂绦虻娜蒎e特性,從而使我們的應用程序更加的穩(wěn)定和健壯。
    2014-06-06
  • 使用composer安裝使用thinkphp6.0框架問題【視頻教程】

    使用composer安裝使用thinkphp6.0框架問題【視頻教程】

    這篇文章主要介紹了使用composer安裝使用thinkphp6.0框架問題,通過一個小視頻給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • php檢測用戶是否用手機(Mobile)訪問網(wǎng)站的類

    php檢測用戶是否用手機(Mobile)訪問網(wǎng)站的類

    php檢測用戶是否用手機(Mobile)訪問網(wǎng)站的類,引入這個類就可以直接使用了,程序基于MIT License協(xié)議開源,使用方法在下面
    2014-01-01

最新評論

社旗县| 云梦县| 那曲县| 沂水县| 承德市| 四川省| 五莲县| 新化县| 临邑县| 广水市| 泸定县| 滨州市| 武邑县| 海晏县| 汽车| 沙湾县| 古蔺县| 汝州市| 鹤岗市| 调兵山市| 淮北市| 兰西县| 灵寿县| 盐津县| 衡水市| 通城县| 黔东| 德保县| 武川县| 冷水江市| 会昌县| 肃北| 哈密市| 宁津县| 晋城| 乐都县| 儋州市| 同德县| 沁水县| 如东县| 弋阳县|