欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 【前端样例】微信小程序多商品评价评星提交

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:519

html5响应式外贸网站英文版

2020-05-08   浏览:506

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:496

【前端样例】微信小程序多商品评价评星提交

发布时间:2020-11-13  

微信小程序多商品评价评星提交

<form bindsubmit="submitComment"> <block wx:for="{{commentList}}" wx:key="{{item.g_id}}"> <view class="rating-top bgw"> <image src=http://www.yiyongtong.com/archives/"{{url+item.thumb}}" class="proimg"></image> <view class="rating-right"> <view class="">评分</view> <view class="star-wrapper"> <block wx:for="{{starnum}}" wx:key="unique" wx:for-item="v"> <view class="star {{item.star>=v?'on':''}}" style="background-image:url({{star}})" bindtap="checkStar" data-num="{{v}}" data-id="{{item.g_id}}"></view> </block> </view> </view> </view> <textarea auto-height class="rating-con bgw pd20" placeholder="请写下你对宝贝的感受吧,对其他人有很大帮助哦!" data-index="{{index}}" value="{{item.content}}" bindblur="saveContent"/> </block> <button class="submit" formType="submit">提交评价</button> </form>

wxml页面结构如上。小程序的textarea组件的bindblur事件更新不及时,所以用form提交。

/** * 星星选择 */ checkStar: function (e) { var commentList = this.data.commentList; var id = parseInt(e.currentTarget.dataset.id); var num = parseInt(e.currentTarget.dataset.num); for (let i = 0, l = commentList.length; i < l; i++) { if (commentList[i].g_id == id) { commentList[i].star = num } } this.setData({ 'commentList': commentList }); },

主要的难点在于双循环中要获取到上一个循环体当前索引,后来发现其实可以通过g_id而不是index来区分这是哪个商品的评价,这样一来就可以拿到每一个商品的星星评级。

/** * 提交评价 */ submitComment: function (e) { var g_id = ''; var star = ''; var content = ''; var commentList = this.data.commentList; for (var i = 0, len = commentList.length; i < len; i++) { g_id += commentList[i].g_id + '>}'; star += commentList[i].star + '>}'; if (utils.judgeNull(commentList[i].content)) { commentList[i].content = '系统默认好评' } // content.push(commentList[i].content); content += commentList[i].content + '>}'; } // console.log(content) // console.log(g_id) // console.log(star) app.fetch1(API.addEvaluate, { uid: wx.getStorageSync('uid'), user_id: wx.getStorageSync('user_id'), g_id: g_id, content: content, star: star, order_id: this.data.order_id }, (err, data) => { console.log(data) if (data.code == ERR_OK) { wx.showToast({ title: '提交评价成功!', icon: 'success', duration: 2000 }) setTimeout(function () { wx.navigateBack({ }) }, 2000) } else { wx.showToast({ title: data.msg, icon: 'loading', duration: 2000 }) } }) },

提交的时候有个坑,原本传给后端的数据应该是三个数组,但是它自动转成了字符串,后端同事查过后发现无解(或者暂时无解),于是选择直接拼接字符串传递,原本打算通过“,”区分,考虑到评价内容中可能出现的“,”最后决定以“}>”作为分隔。

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.