问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP点赞和踩功能的怎么实现,代码怎么写

发布网友 发布时间:2022-04-06 05:17

我来回答

7个回答

懂视网 时间:2022-04-06 09:38

本文实例讲述了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 = mysqli_query($link,"select * from pic");
	 while($row=mysqli_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 }?>

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();
$id = $_POST['id'];
if(!isset($id) || empty($id)) exit;

$ip_sql=mysqli_query($link,"select ip from pic_ip where pic_id='$id' and ip='$ip'");
$count=mysqli_num_rows($ip_sql);
if($count==0){
	$sql = "update pic set love=love+1 where id='$id'";
	mysqli_query($link,$sql);
	$sql_in = "insert into pic_ip (pic_id,ip) values ('$id','$ip')";
	mysqli_query($link,$sql_in);
	$result = mysqli_query($link,"select love from pic where id='$id'");
	$row = mysqli_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编程(视频)

热心网友 时间:2022-04-06 06:46

这个问题应该属于javascript类,你这样提问会导致知道分类分到php里去了。

实际上应该是前端控制的,有人说了,可以用jquery的$.post,如果你要用两个form, 那就不能用$('form')这种方式提交,因为会选到两个Form,可以分别加标示区分

<form id='good'>
</form>

<form id='bad'>
</form>

<script>
$('#good').submit();
</script>

而且点赞和踩,这种功能,不需要用到form, 两个Button就可以了

热心网友 时间:2022-04-06 08:04

首先建3张表,点赞、踩 统计表,点赞日志表,踩日志表

前端点击想服务发送请求,当前用户点赞 则统计表+1,点赞日志记录一条数据,表明该用户点赞了,踩->同理

热心网友 时间:2022-04-06 09:39

点一下 用ajax传到页面用php做判断 再返回 再做判断

热心网友 时间:2022-04-06 11:30

得用ajax,一般这种东西都有现成的插件

热心网友 时间:2022-04-06 13:38

JS里的$.post方法,来提交表单

热心网友 时间:2022-04-06 16:03

用AJAX,点击以后传递值就可以
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问昆山正仪到江苏省昆山市出口加工区新竹路99号 怎么坐班车最近? 跪求苏州神达电脑地址!!! 华为运动耳机挂脖式怎么配对 雅酷美挂脖式无线蓝牙防水耳机-运动时尚,自由畅听 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx+1 原先微信有联系后来突然对方要求我对他进行朋友验证我没有他电话号码... 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx 已知函数fx=cos^2*x-sin^2*x+2sinx*cosx,求fx的最小正周期,并求当... 已知函数f(x)=cos2x-sin2x 4sinx·cosx求f(x)的最小正周期,并求当x为... 已知f(x)=cos^2x-sin^x+2sinxcosx。①求函数最小正周期②当x∈【0... Php点赞效果的制作代码+解析 PHP判断是否是序列化字符串数据的函数 PHP写的网站怎么用https访问,具体要怎样 固态硬盘250G和256G真的够用了吗?打算换硬盘!别人说固态硬盘数据找不回? 256G固态硬盘真的都够用吗 256g电脑够用吗 电脑只有一个256G固态硬盘,够用吗 学习编程的话,256g固态硬盘够不够? 笔记本电脑256G固态硬盘够用么?装个侠盗飞车5,CF ,DNF ,LOL够么?? 如何将php的url生成伪静态的url 网站优化之PHPCMS如何开启伪静态 求助PHP伪静态,如何将动态PHP页面改为伪静态页面 PHP代码实现伪静态 phpstudy用这个怎么让php语言的网站实现伪静态? 网页伪静态页面是如何实现的? PHP的URL如何伪静态?大神救命! 怎么设置网站伪静态? php怎么配置伪静态 PHP和asp如何实现伪静态 php 怎么把文件里的原图片和缩略图删掉 js点赞效果实现 php ajax jquery这三个要怎么结合使用。 jquery ajax php 调用方法! php 怎么用ajax做评论 请问如何使用jquery ajax实现我需要的效果 php与jquery的ajax调用有几种方法:$.ajax()或是$.post()或是$.get()这些都可以吗?若行请依次写出具体使用 jQuery+PHP 实现Ajax评论系统 怎样使用 jquery里面ajax实现点击 详情就会出现对应的信息php开发的 这里怎么用jquery 和ajax实现如图效果 dedecms 点赞功能怎么做呢 PHP中运用jQuery的Ajax跨域调用实现代码 {ThinkPHP题目} thinkphp 读取数据问题 谁有面试phper的经验 Thinkphp一些问题 有关Thinkphp的问题 关于ThinkPHP的问题 求thinkphp高手,有关thinkphp的问题! thinkphp 自动验证的问题,跪求解答 怎么学Thinkphp 好答案高分 还有300分