商品收藏模块的功能设计实现

本文介绍了一种电商网站上实现商品收藏功能的方法。通过创建收藏表并利用前端JavaScript和AJAX技术,实现了用户对商品的收藏与取消收藏操作。文章详细展示了如何根据用户ID和商品ID动态更新收藏状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                   电商网站的商品收藏功能实现



             商品收藏的功能描述:用户对一件商品重复的进行收藏与取消收藏操作。点击收藏,将商品收藏成功,并且图标变为  已收藏;点击已收藏,则取消对该商品的收藏,并且图标变为  收藏 。这个操作可以重复进行!
       
        下面是我设计此功能的步骤以及关键代码:
        1.首先创建一张收藏表:我的收藏表只有三个字段:id;userID(用户id);productID(产品id);
        2.写添加收藏与取消收藏的方法(要根据userID和productID两个参数来实现收藏与取消收藏的);
        3.我的收藏图标是在商品详情页,所以要在进入商品详情页的时候进行判断,判断该用户有没有收藏该商品!如果该用户已收藏该商品,则图标显示  已收藏,反之,则显示  收藏 。
        4.在进入商品详情页,根据点击图标所显示的文字来判断你所进行的操作,如果点击的文字是收藏,则触发收藏事件,通过ajax进行该用户对该产品的收藏方法;如果点击的文字是已收藏,则触发取消收藏事件,也是通过ajax进行该用户对该产品的取消收藏方法。(注意:这里要先获取到该用户的userID和该商品的productID,这两个参数都可以在进入商品详情的那个方法中获取;“collection.do” 添加收藏的方法,“deleteUcByUPId.do”取消收藏的方法。)

商品详情页关键代码如下:
<div id="mir"  class="right clearfloat fr" style="text-align: center;">
     <i id="shoucang" class="iconfont icon-shoucang"></i>
     <p style="cursor: pointer;" id="btn" class=""><a style="color: #8f8f94;" href="Javascript:window.external.addFavorite(document.location.href,document.title)">收藏</a></p>
</div>
<script type="text/javascript">
	   
	   var productID = ${requestScope.productID};
	   var userID = ${requestScope.userID};
	   function addbtn(){
			$("#shoucang").addClass('icon-shoucang1').removeClass('icon-shoucang');
			$("#btn").text('已收藏');
		};
		
		function dedlebtn(){
			$("#btn").text('收藏');
			$("#shoucang").addClass('icon-shoucang').removeClass('icon-shoucang1');
		};
		
		$(document).ready(function () {
		if (${message.type} == 0){
				dedlebtn();
			}else{
				addbtn();
			}
		});
		$("#mir").click(function() {
			if ($("#btn").text() == '收藏' ) {
				$("#shoucang").addClass('icon-shoucang1').removeClass('icon-shoucang');
				$("#btn").text('已收藏');
			} else {
				$("#btn").text('收藏');
				$("#shoucang").addClass('icon-shoucang').removeClass('icon-shoucang1');
			}
			if($("#btn").text() == '收藏'){
				deleteCollection(productID,userID);
			}
			else{
				addUserCollection(productID,userID);
				
			}
		});
       

		function addUserCollection(productID){
			$.ajax({
				type: "POST",
				url: "collection.do",
				data:{"productID":productID,"userID":userID},
				dataType: "text",
				success:function(data){
					if(data=="1"){
						$("#shoucang").addClass('icon-shoucang1').removeClass('icon-shoucang');
						$("#btn").text('已收藏');
						
					}else{
						$("#btn").text('收藏');
						$("#shoucang").addClass('icon-shoucang').removeClass('icon-shoucang1');
					}

				}
			})
		}

		function deleteCollection(productID,userID){
			$.ajax({
				type: "POST",
				url: "deleteUcByUPId.do",
				data:{"productID":productID,"userID":userID},
				dataType: "text",
				success:function(data){
					if(data=="1"){
						$("#btn").text('收藏');
						$("#shoucang").addClass('icon-shoucang').removeClass('icon-shoucang1');
					}else{
						$("#shoucang").addClass('icon-shoucang1').removeClass('icon-shoucang');
						$("#btn").text('已收藏');

					}

				}
			})
		}
	   
	</script>







<think>好的,我现在需要在Axure中设计或实现商品收藏功能。首先,我需要了解用户的需求,他们希望收藏功能是怎样的。根据引用[5],用户注册后可以在个人中心管理收藏,所以收藏功能应该与用户账户关联,并且有入口进行查看和操作。 接下来,按照引用[3]提到的快速原型法,应该先确定总体框架,再细分模块。引用[1]也提到先确定总体框架,再拆分小原型。所以,首先确定商品页面的布局,比如在商品卡片上添加收藏按钮,然后设计收藏列表页面和个人中心的入口。 然后,考虑交互设计。当用户点击收藏按钮时,按钮状态需要改变,比如从“未收藏”变为“已收藏”,同时可能弹出提示。这里需要用到Axure的动态面板和交互事件。例如,按钮的点击事件触发面板状态切换,并显示提示信息。引用[4]提到小程序中商品以卡片形式展示,所以可以借鉴这种简洁的设计,在卡片右上角放置收藏图标。 接着,数据管理方面,Axure本身不支持后端数据存储,但可以使用中继器模拟收藏数据。引用[3]中提到的Axure RP被广泛使用,可能其功能足够模拟前端交互。需要设置中继器来存储收藏商品信息,如名称、图片、价格等,并在收藏列表页面展示这些数据。 另外,用户需要能在个人中心查看和管理收藏,所以需要在个人中心页面添加一个“我的收藏模块,链接到收藏列表。根据引用[5],个人中心可以更新信息和操作收藏,所以设计时需确保导航清晰。 最后,测试原型,确保点击收藏按钮后状态变化,数据正确显示在收藏列表,并且各页面跳转正常。根据引用[3]的原型设计目的,确保用户能直观理解流程,提前验证需求。 可能遇到的问题包括中继器的正确配置,以及交互事件的逻辑是否顺畅。需要分步检查每个元件的交互设置,确保状态切换和数据传递正确。同时,参考引用[4]的小程序简洁设计,避免界面过于复杂,保持用户友好。</think>### 在Axure中实现商品收藏功能的设计步骤 #### 1. **确定功能框架** - **目标场景**:用户浏览商品时点击收藏按钮,商品自动添加到“我的收藏”列表,并支持在个人中心查看和管理[^5]。 - **核心组件**: - 商品卡片(包含图片、名称、价格、收藏按钮) - 动态收藏按钮(切换未收藏/已收藏状态) - 收藏列表页面(展示已收藏商品) - 提示反馈(如“收藏成功”弹窗) --- #### 2. **设计商品卡片与收藏按钮** - **步骤**: 1. 拖入图片元件作为商品缩略图,添加文字标签显示名称和价格。 2. 在卡片右上角添加一个**动态面板**作为收藏按钮,设置两种状态: - **State1**:未收藏(灰色空心心形图标) - **State2**:已收藏(红色实心心形图标) 3. 为动态面板添加点击交互: - **单击时**:切换面板状态(State1 ↔ State2) - **显示弹窗提示**:根据状态显示“收藏成功”或“取消收藏”[^3]。 ```plaintext (示例交互逻辑) 当点击收藏按钮时: - 如果当前状态为State1(未收藏): 1. 切换至State2 2 显示弹窗“收藏成功!” - 如果当前状态为State2(已收藏): 1. 切换至State1 2. 显示弹窗“已取消收藏” ``` --- #### 3. **模拟收藏数据存储(中继器)** - **步骤**: 1. 添加**中继器**元件,命名为“收藏数据”。 2. 配置中继器列:`商品ID`、`名称`、`价格`、`图片`、`是否收藏`。 3. 绑定商品卡片数据到中继器: - 点击收藏按钮时,若为收藏操作,向中继器插入一行数据。 - 若为取消操作,删除中继器中对应商品ID的数据[^3]。 --- #### 4. **创建收藏列表页面** - **步骤**: 1. 新建页面“我的收藏”,添加标题和返回按钮。 2. 拖入**中继器**元件,绑定“收藏数据”并设置动态列表: - 每行显示商品图片、名称、价格。 - 支持点击跳转回商品详情页。 3. 在个人中心页面添加入口按钮“我的收藏”,链接至该页面[^4]。 --- #### 5. **添加交互反馈** - **微交互优化**: - **收藏按钮动画**:点击时增加缩放效果(Axure“推动”动画)。 - **数据同步**:收藏列表页面的中继器自动加载最新数据。 - **空状态提示**:当收藏列表为空时,显示“暂无收藏商品”。 --- ### 最终效果验证 1. 点击商品卡片收藏按钮,图标状态切换并弹出提示。 2. 进入“我的收藏”页面,查看已收藏商品列表。 3. 取消收藏后,列表数据实时更新。 --- ### 注意事项 - **保持简洁性**:参考引用[4]的小程序设计,避免复杂布局,突出核心功能。 - **用户路径清晰**:从商品页到收藏列表的跳转需直观(如底部导航栏固定入口)[^5]。 - **兼容性测试**:在不同屏幕尺寸下预览原型,确保按钮和列表可操作。 ---
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值