国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

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

2024-04-25 20:42:22
字體:
供稿:網(wǎng)友

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

數(shù)據(jù)庫設(shè)計(jì)

先準(zhǔn)備兩張表,pic表保存的是圖片信息,包括圖片對應(yīng)的名稱、路徑以及圖片“喜歡”總數(shù),pic_ip則記錄用戶點(diǎn)擊喜歡后的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實(shí)現(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中,我們將定義鼠標(biāo)滑向和離開紅心按鈕的動(dòng)態(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代碼

當(dāng)用戶點(diǎn)擊自己喜歡的圖片上的紅心按鈕時(shí),向后臺(tái)love.php發(fā)送ajax請求,請求響應(yīng)成功后,更新原有的數(shù)值。

代碼如下

$(function(){

$("p a").click(function(){

var love = $(this);

var id = love.attr("rel"); //對應(yīng)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

后臺(tái)love.php接收前端的ajax請求,根據(jù)提交的圖片id值,查找IP表中是否已有該用戶ip的點(diǎn)擊記錄,如果有則告訴用戶已“喜歡過了”,反之,則進(jìn)行一下操作:

1、更新圖片表中對應(yīng)的圖片love字段值,將數(shù)值加1。

2、將該用戶IP信息寫入到pic_ip表中,用以防止用戶重復(fù)點(diǎn)擊。

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 "喜歡過了..";

}

//獲取用戶真實(shí)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ù)是用來獲取用戶的真實(shí)IP。

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊通| 清丰县| 广德县| 东丽区| 得荣县| 三穗县| 苏尼特右旗| 安新县| 青阳县| 铜山县| 青铜峡市| 泰宁县| 曲松县| 怀安县| 廊坊市| 伊金霍洛旗| 泰和县| 二连浩特市| 察哈| 桑日县| 双鸭山市| 枞阳县| 镇康县| 茂名市| 库伦旗| 博白县| 屏东市| 宁乡县| 峨山| 呼伦贝尔市| 滦南县| 驻马店市| 天祝| 汝阳县| 密云县| 华亭县| 江山市| 石家庄市| 滁州市| 焦作市| 兴义市|