关于收藏功能的实现 | 您所在的位置:网站首页 › 请问收藏的藏怎么写 › 关于收藏功能的实现 |
今天受教了,学习了收藏功能的实现,以后实现什么功能的时候,一定先把逻辑理清楚再做。 关于收藏功能的逻辑梳理, 一、前台页面 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 实验室设备网 版权所有 |