飞龙博客

妙法莲华经

php点击加入或取消收藏ajax接受数据session存储

feilong.org 修订于2012-02-03 12:55:02

点击某个图片或文本链接或任何DOM元素,将某日志文章加入收藏或取消收藏,可以采用ajax实现,然后在接受数据页用session存储该文章ID号。如何用Ajax与session结合,实现加入或取消收藏的功能?飞龙自己捣鼓了以下的代码。本日志修订网址:http://feilong.org/ajax-session-click-add-remove-favorate

一、首先在点击互动页,一般是某文章页。
飞龙的WordPress是某个single日志页,需要实现点击链接切换收藏或取消收藏的效果。同时需要向目标数据接受页传递日志ID号。

1、根据本文章是否已经收藏,调出对应的链接图片或文本:


取消收藏
加入收藏


2、点击上面显示出来的某个链接,实现轮换链接,并实现向“数据接受页”传递日志ID号。以下是飞龙自己写的jQuery和Ajax结合实现变换和传递数据。

////收藏////
$(function(){
var pid=$("#pid").attr("title");//alert(pid);
$("#biaoji").click(function(){//

$(this).toggleClass("hide");

// 向‘收藏页’提交此文的pid
$.ajax({
type: "POST",
url: "http://127.0.0.1/xinyuan/bookmark",//此为数据接受页,可以改为你自己的实际url
data:"pid="+pid,

success: function(msg){ // alert(msg);

var addpid=$(msg).find("#addpid").text();//alert(addpid); //此#addpid点击的同时,数据接受页内的DOM
//$("#zhaiyao").append(msg);
if(addpid){
alert('success: 收藏此文ID:'+addpid); //成功提示,可以采用其它方式提示
}else{//收藏失败
}//

}//success

});//$.ajax

$("#biaojied").toggleClass("hide");

});
});//0

////取消收藏////
$(function(){
var pid=$("#pid").attr("title");//alert(pid);
$("#biaojied").click(function(){//

$(this).toggleClass("hide");

// 向‘收藏页’提交此文的pid
$.ajax({
type: "POST",
url: "http://127.0.0.1/xinyuan/bookmark",
data:"pid="+pid,

success: function(msg){ // alert(msg);

var movepid=$(msg).find("#movepid").text();//alert(movepid); 
//$("#zhaiyao").append(msg);
if(movepid){

alert('success: 取消收藏此文ID:'+movepid); 

}else{
//无法取消收藏?
}//


}//success

});//$.ajax

$("#biaoji").toggleClass("hide");

});
});//0

二、数据接受页,飞龙采用指定的某page页面。需要接受来自 互动点击页的ID,并检查已有session是否有此日志ID,并做相应的处理,输出新的session值。如果是直接打开此页面,而没有接受到任何数据,那么直接取出已有的session值。

1、接受传递过来的日志ID,并处理session得到新session,显示日志ID的DOM,方便第一步里msg调用。


'.$addpid.'
'; $movepid=$_SESSION['movepid']; echo '
'.$movepid.'
'; }else{//直接打开此收藏页的情况下,取出已有session即可 @session_start(); $pids=$_SESSION['pids']; print_r($pids); }/// ?>

2、飞龙写的session处理函数:接受来自 互动点击页的ID,并检查已有session是否有此日志ID,并做相应的处理,输出新的session值。

function fl_add_favors($pid){
@session_start();

$old=$_SESSION['pids'];
if(in_array($pid,$old)){//已收藏,干掉
$a2[]=$pid;
//从数组中去掉此 $pid,返回两个数组的差集数组。键名保持不变。
$new=array_diff($old,$a2);// $old-$a2
unset($_SESSION['addpid']);$_SESSION['movepid']=$pid;
echo '';

}else{//没收藏?加入
$new=$old;$new[]=$pid;
$_SESSION['addpid']=$pid;unset($_SESSION['movepid']);
echo '';

}

//去掉空值
$new=array_filter($new);   

$_SESSION['pids']=$new;


}//20120202 feilong

更新网址:https://feilong.org/ajax-session-click-add-remove-favorate
最初发布:20120203 12:55:02 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: wordpress 网站开发

新作:

旧文: