关于收藏功能的实现 您所在的位置:网站首页 请问收藏的藏怎么写 关于收藏功能的实现

关于收藏功能的实现

2024-07-11 02:50| 来源: 网络整理| 查看: 265

今天受教了,学习了收藏功能的实现,以后实现什么功能的时候,一定先把逻辑理清楚再做。

关于收藏功能的逻辑梳理,

一、前台页面

1.收藏按钮,默认显示“收藏”

收藏

2.页面加载,调用pdUserCollection()方法进行判断当前信息是否已收藏,判读的依据是数据库中收藏表中是否存在该信息(也可以判断数据表中该信息的状态)

1>.如果已收藏,更新sctxt的显示文字为:取消收藏

2>.如果未收藏,更新sctxt的显示文字为:收藏

3.点击按钮,触发点击事件,调用addUserCollection()方法,后台方法进行判断数据表中是否收藏,

1>.如果已收藏,执行删除操作(或者改变信息状态)

2>.如果未收藏,执行添加操作(或者改变信息状态)

//页面加载 $(document).ready(function () { //查询现状 pdUserCollection(infoId, userID, infoType); //注册点击事件 $("#mir").click(function () { if (userID != -1) { addUserCollection(infoId, userID, infoType); } else { $(location).attr('href', '/webuser/login'); } }); }); //页面加载查询是不是已经关注 function pdUserCollection(infoId, userID, infoType) { $.ajax({ type: "post", url: "/user/AddShouCang", data: { "infoId": infoId, "userID": userID, "InfoType": infoType,"ActionType":"CX" }, dataType:"json", success: function (data) { if (data.code) { $("#sctxt").text('取消收藏'); } else { $("#sctxt").text('收藏'); } } }) } //收藏操作 按钮被点击时执行 function addUserCollection(infoId, userID, infoType) { $.ajax({ type: "POST", url: "/user/AddShouCang", data: { "infoId": infoId, "userID": userID, "InfoType": infoType, "ActionType": ""}, dataType: "json", success: function (data) { if (data.code) { $("#sctxt").text('取消收藏'); } else { $("#sctxt").text('收藏'); } } }) }

二、后台

后台进行逻辑判断执行相近的数据库操作

/// /// 前端收藏处理的方法 /// 查询和插入 /// /// 信息ID /// 用户ID /// 信息类型 /// 操作类型:CX 代表查询 其他为插入 /// True 或 False 字符串 public ActionResult AddShouCang(int InfoId, int UserId, int infoType,string ActionType="CX") { dynamic cc = new ExpandoObject(); string SiteId = SYSConfig.SiteId; //查是否存在 SPX.DAL.PortalRegUserShouCang Pdal = new SPX.DAL.PortalRegUserShouCang(); List PList = Pdal.GetListArray("infoid = " + InfoId + " and userid = " + UserId + " and infoType =" + infoType); //当查询时 if (ActionType == "CX") { if (PList.Count > 0) { cc.code = true; cc.msg = "已关注"; return Content(DAL.JsonDAL.ObjToJsonStr(cc)); } else { cc.code = false; cc.msg = "未关注"; return Content(DAL.JsonDAL.ObjToJsonStr(cc)); } } //当插入时 if (PList.Count > 0) { Pdal.Delete(PList[0].Id); cc.code = false; cc.msg = "已取消"; return Content(DAL.JsonDAL.ObjToJsonStr(cc)); } else { SPX.Model.PortalRegUserShouCang PM = new SPX.Model.PortalRegUserShouCang(); PM.SiteId = SiteId; PM.addtime = DateTime.Now; PM.InfoId = InfoId; PM.UserId = UserId; PM.InfoType = infoType; Pdal.Add(PM); cc.code = true; cc.msg = "成功关注"; return Content(DAL.JsonDAL.ObjToJsonStr(cc)); } }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有