导航:首页 > 编程语言 > phpajax点赞

phpajax点赞

发布时间:2022-09-23 14:04:30

Ⅰ ajax 实现点赞功能

原理:

1.通过ajax将数据提交到服务端。

2.服务端处理并返回结果。

jquery的ajax形式如下:

$.ajax({
url:'update_Praise.php',//处理数据的地址
type:'post',//数据提交形式
data:{'id':1,'user':123},//需要提交的数据
success:function(data){//数据返回成功的执行放大
if(data==1){//成功
alert('执行成功');
}
if(data==2){//失败
alert('执行失败');
}
}
});

服务端处理数据:

//post接受数据
$id=$_POST['id'];
$user=$_POST['user'];
$sql="updatetablesetPraise=Praise+1whereid=".$id;//更新点赞
$sql2="insertintotable2uservalues('".$user."')";//插入点赞记录
if(mysql_query($sql)&&mysql_query($sql2)){//执行sql语句
echo1;//输出1(ajax的data参数)
}else{
echo2;//输出2(ajax的data参数)
}

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

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

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

<formid='good'>
</form>

<formid='bad'>
</form>

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

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

Ⅲ 用ThinkPHP+JQuery实现无刷新点赞、踩、收藏功能

//点赞
$(".log_digg").on('click', function () {
var post_id = $(this).parent().parent().find(".post_id").val();
var log_digg_num =$(this).find(".log_digg_num_"+post_id).html();
log_digg_num=parseInt(log_digg_num);
var text = $(this).find(".digg_text_"+post_id).text();
if(text=="点赞"){
$.post(URL_PATH+"/index/Index/digg_log",{'post_id':post_id},function(data){
var data=JSON.parse(data);//接收解码的数据
if(data.code=="200"){
alert(data.msg);
log_digg_num = log_digg_num+1;
$(".log_digg_num_"+post_id).html(log_digg_num);
$(".digg_text_"+post_id).text('取消点赞');

}
else
{
alert('点赞失败');
}
});
}
else{
$.post(URL_PATH+"/index/Index/cancel_digg_log",{'post_id':post_id},function(data){
var data=JSON.parse(data);//接收解码的数据
if(data.code=="200"){
alert(data.msg);
log_digg_num = log_digg_num-1;
$(".log_digg_num_"+post_id).html(log_digg_num);
$(".digg_text_"+post_id).text('点赞');

}
else
{
alert('取消点赞失败');
}
});
}

})

如果需要后台传输就用ajax的给你个例子:
$.ajax({ url: "test.html", context: document.body}).done(function() { $(this).addClass("done");});

Ⅳ 【新手求助】PHP点赞功能,急!!!

html:



<head>

<scriptsrc="common/js/jquery.js"type="text/javascript"></script>
<scriptlanguage="JavaScript"type="text/javascript">
jQuery(function($){
//这两个是鼠标放上去的效果
$(".zhan").hover(function(){
$(this).children("b").toggle();
});
$(".cai").hover(function(){
$(this).children("b").toggle();
});
});
</script>
<scripttype="text/javascript">
<!--这两个点击事件可以改进的,因为事件问题,所以就弄了两个点击事件
$(document).ready(function(e){
//点赞(给力)
$('.zhan').click(function(){
varzhan=$(this);
varleft=parseInt($(this).offset().left)+10,top=parseInt($(this).offset().top)-10,obj=$(this);
$(this).append('<divid="zhan"><b>+1</b></div>');
$('#zhan').css({'position':'absolute','z-index':'1','color':'#C30','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){
$(this).fadeIn('fast').remove();
varNum=parseInt(obj.find('span').text());
Num++;
obj.find('span').text(Num);
});
$.ajax({
url:"ajax.php?action=zan",
type:"post",
data:"answer_id="+$(this).attr("alt"),
success:function(datas){
zhan.unbind('click');
zhan.parent().parent().siblings().children().children().unbind('click');
zhan.parent().parent().siblings().children().children().attr("class","evaluate-inner");
zhan.attr("class","evaluate-inner");
}
});
});
//踩(不给力)
$('.cai').click(function(){
varcai=$(this);
varleft=parseInt($(this).offset().left)+10,top=parseInt($(this).offset().top)-10,obj=$(this);
$(this).append('<divid="cai"><b>-1</b></div>');
$('#cai').css({'position':'absolute','z-index':'1','color':'#7DAAD5','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){
$(this).fadeIn('fast').remove();
varNum=parseInt(obj.find('span').text());
Num--;
obj.find('span').text(Num);
});
$.ajax({
url:"ajax.php?action=cai",
type:"post",
data:"answer_id="+$(this).attr("alt"),
success:function(datas){
cai.unbind('click');
cai.parent().parent().siblings().children().children().unbind('click');
cai.parent().parent().siblings().children().children().attr("class","evaluate-inner");
cai.attr("class","evaluate-inner");
}
});
});
});
//-->
</script>
</head>
<body>
<!--给力开始-->
<spandata-evaluate="0"id="evaluate-1908165795"class="evaluate"alog-action="qb-zan-btn"><spanclass="evaluate-outer">
<!-----判断对应的回答的id是否在自己创建的存储赞和踩数据的php文件,如果赞或者踩存在一个的话就不能再单击---->
<spanclass="evaluate-inner{if$answer_datas.ans_id|in_array:$zan_listor$answer_datas.ans_id|in_array:$cai_list/}{else/}zhan{/if/}"alt="{$answer_datas.ans_id/}"><bstyle="display:none"class="evaluate-tipevaluate-num-fixed">给力</b><bclass="evaluate-numevaluate-num-fixed"><span>{$answer_datas.goods/}</span></b></span></span></span>
<!--不给力开始-->
<spandata-evaluate="0"id="evaluate-bad-1908165795"class="evaluateevaluate-bad"alog-action="qb-evaluate-outer"><spanclass="evaluate-outer"><spanclass="evaluate-inner{if$answer_datas.ans_id|in_array:$zan_listor$answer_datas.ans_id|in_array:$cai_list/}{else/}cai{/if/}"alt="{$answer_datas.ans_id/}"><bstyle="display:none;"class="evaluate-tipevaluate-num-fixed">不给力</b><bclass="evaluate-numevaluate-num-fixed"style="display:inline-block;"><span>{$answer_datas.bads/}</span></b></span></span></span>
</div>
</div>
<!--评论回答开始-->
</body>
</html>

php

<?php
$action=$_GET['action'];//获取get方式传过来的action
require_once("array/ovovsys_zan.php");
switch($action){
case'detail':
/*****赞开始****/
$zan_list=json_decode(str_replace("'",'"',$zan_json),true);
$zan_lists=array();
foreach($zan_listas$key=>$value){
if($value['uid']==$uid){
$zan_lists[]=$value['answer_id'];
}
}
$smarty->assign('zan_list',$zan_lists);//查询当前登录的会员的uid对应的点赞的回答
/*****赞结束****/
/*****踩开始****/
$cai_list=json_decode(str_replace("'",'"',$cai_json),true);
$cai_lists=array();
foreach($cai_listas$key=>$value){
if($value['uid']==$uid){
$cai_lists[]=$value['answer_id'];
}
}
$smarty->assign('cai_list',$cai_lists);//查询当前登录的会员的uid对应的踩的回答
/*****踩结束****/
$smarty->display('自己的静态页面');
exit();
break;
}
?>

ajax

<?php
require_once("array/ovovsys_zan.php");//这里引用array文件夹中的数组文件
$action=trim($_GET['action']);
if(empty($action)){
echo'<fontcolor=red>参数错误!</font>';exit();
}
switch($action){
case'zan'://点赞(给力)
//$zan_json是数组文件中设置的数组变量,存的是json数据----1
$zan_array=json_decode(str_replace("'",'"',$zan_json),true);

//获取当前的会员的uid-----2
$user_answer['uid']=$uid;
//获取对应的赞的回答的id----2
$user_answer['answer_id']=$_POST['answer_id'];

//将会员的uid和答案的id一块的数组放到指定的数组中----3
$zan_array[]=$user_answer;

$config_path='shuzu/ovovsys_zan.php';
if(!file_exists($config_path)){
$Base->ErrorMsg('文件错误:shuzu/ovovsys_zan.php不存在!');exit();
}

//将指定的数组转换成json数据,并且将双引号转换成单引号,不然放到数组文件中后会出错----4
$zan_new_json=str_replace('"',"'",json_encode($zan_array));

$fp=@fopen($config_path,'r+');
if(!$content=@fread($fp,filesize($config_path))){
$Base->ErrorMsg('无法读取shuzu/ovovsys_zan.php文件!');exit();
}

//执行替换,将数组文件中对应的json数据----5
$content=str_replace("$zan_json="{$zan_json}"","$zan_json="{$zan_new_json}"",$content);
$fp=@fopen($config_path,'w+');
@fwrite($fp,$content);

//修改对应的数据表中的数据----5
$Db->ThisQuery("update`".$db_prefix."ask_answers`set`goods`=`goods`+1where`ans_id`=".$user_answer['answer_id']."");
exit();
break;
case'cai'://踩(不给力)
$cai_array=json_decode(str_replace("'",'"',$cai_json),true);
$user_answer['uid']=$uid;
$user_answer['answer_id']=$_POST['answer_id'];
$cai_array[]=$user_answer;
$config_path='shuzu/ovovsys_zan.php';
if(!file_exists($config_path)){
$Base->ErrorMsg('文件错误:shuzu/ovovsys_zan.php不存在!');exit();
}
$cai_new_json=str_replace('"',"'",json_encode($cai_array));
$fp=@fopen($config_path,'r+');
if(!$content=@fread($fp,filesize($config_path))){
$Base->ErrorMsg('无法读取shuzu/ovovsys_zan.php文件!');exit();
}
$content=str_replace("$cai_json="{$cai_json}"","$cai_json="{$cai_new_json}"",$content);
$fp=@fopen($config_path,'w+');
@fwrite($fp,$content);
$Db->ThisQuery("update`".$db_prefix."ask_answers`set`bads`=`bads`-1where`ans_id`=".$user_answer['answer_id']."");
exit();
break;
}
?>

对应的数据文件(因为创建数据库时没有创建踩和赞的再断,所以这里就用php文件存变量的方式保存了一下答案对应的赞和踩的数据,其中包含用户的id和答案的id):

<?php
$zan_json="";
$cai_json="";
?>
你没看错,就是两个变量

Ⅳ thinkphp框架 文章的点赞+1和浏览数怎么做

用户点赞后,通过ajax把文章id传给控制器
控制器中操作数据库,把相应的点赞数加1
再在ajax回调中把页面中原来的点赞数加1
就OK了。

浏览数,每次用户访问页面的时候读取文章的浏览数,并加1
同时修改数据库。

Ⅵ 怎么利用ajax 和 js实现点赞功能

先引入jquery文件

然后点击事件比如说下面的html代码

<aclass="like"data-id="55">点我赞一个<spanclass="zan">99</span></a>

然后js代码

$(document).on("click",".like",function(){
vardataid=$(this).attr("data-id");
varurl='3tii.com/test/ajax.php?id='+dataid;
$.ajax({
url:url,
type:'get',
dataType:'json',
success:function(data){
$('.zan').html(data.html);
}
});
});

然后ajax.php文件,这个文件里面先获取id,然后根据id,update新"赞"那个字段,每点一次就+1,

然后再获取"赞"字段的值,就是总的赞了多少次,将结果存到数组里面,返回json数据,就是上面js的,data.html

ajax.php相关代码

//相关的sql语然,按照你自己的来,根据获取的id,update新"赞"那个字段,每点一次就+1
//然后再获取"赞"字段的最新值
$data=array(
"html"=>23//这里是获取到的赞的最新值
);
}
echojson_encode($data);

ok,就可以了.

Ⅶ tp框架文章点赞,用ajax+php,点赞失败且无增加,感觉是前端ajax哪里写错了

//控制器的setInc那一行代码改成:

$this->error($id);//先查看一下你获取的id是否正确,如果没有问题的话,这一行注释掉
if(M("Cession")->where(array('id'=>$id))->setInc("c_dz",1)){//前面的M()方法这里我直接调用了,第一个字母注意在大写,然后要判断返回值是否为真
$this->success();
}else{
$this->error(M("Cession")->getLastSql();)//如果更新失败,就看一下最后一句sql是否有问题,只在测试环境这样使用
}


//另外,js的success函数这样写:
success:function(data){
console.log(data);//先打印出后台返回的东西来看看
if(data.status==1){
$("#testtotal").text(parseInt(total)+1);//我看到你代码的这个地方是有问题的,你返回的就是total+1,你又再加了一个total,可以改成我这样,成功了,直接在原来的阅读数上加一,为了确保total是整数,我加了个parseInt()函数
}

}

Ⅷ 用thinkphp写商品收藏,要怎么写,之前写过tp+ajax点赞的,收藏在控制器那不会了

每次打开一个商品,查询收藏表是否存在收藏记录,查询用户id跟商品id,如果存在,收藏按钮不可点击。
每次点击收藏,用location.href="url?id=55";跳转过去,在控制器页面判断$_GET存在否,获取商品id和用户id,存到数据库。
完毕

阅读全文

与phpajax点赞相关的资料

热点内容
为什么安卓机拍照那么丑 浏览:694
服务器绑定云产品实例 浏览:313
程序员认真工作被开除 浏览:453
程序员送苹果 浏览:143
小程序绘图源码 浏览:968
如何购买域名和服务器阿里云 浏览:671
服务器地址及端口在哪里 浏览:695
腾讯云服务器有危险吗 浏览:798
复制文件到文件夹php 浏览:10
java注释正则表达式 浏览:858
java连接远程oracle 浏览:91
javamainargs 浏览:758
金华数据文档加密软件公司 浏览:855
内心极度担心解压的音乐 浏览:897
穿搭技巧app卡色配什么颜色 浏览:595
程序员得结石 浏览:131
查公司薪资的app叫什么 浏览:410
压缩包多个文件夹图片连续看 浏览:487
linuxmysql无法用命令启动 浏览:442
地税身份认证用什么ApP 浏览:531