这个是目前做到的:
登记入口的代码已经在上一章记录好了:
微信小程序实现账号密码登入和传值显示
这个是逻辑index.js
// index.js
Page({
onLoad: function (options) {
console.log('传过来的是',options); // options里面是上级页面传来的参数(教师姓名)
let idname = options.studentname;
this.setData({
orderId: idname
})
wx.cloud.callFunction({
name:'getname',
data:{
idname
}
}).then(res =>{
console.log('传回成功',res.result.data) //这里用res.data是错误的,打印下会发现数值是null所以要精确点。
this.setData({
list: res.result.data
})
}).catch(res=>{
console.log('传回失败',res)
})
} ,
})
这个是index.wxml
<!--pages/index/index.wxml-->
<text>您好!{{orderId}}老师!</text>
<view wx:for="{{list}}" wx:key="key" >
<view>{{item.studentName}}</view>
<input class="input" type="number" placeholder="这是一个数字输入框" />
</view>
<button bindtap="updata">登记上传</button>
因为涉及到20以上个数据的返回,所以我用了云函数来请求超过20个以上的学生。
里面的index.js是这样的:
// 云函数入口文件
const cloud = require('wx-server-sdk')
let id =0;
// 云开发环境初始化
cloud.init({env: cloud.DYNAMIC_CURRENT_ENV})
const db = cloud.database()
exports.main = async (event, context) => { //event就是本地传过来的参数
try{
return await cloud.database().collection("stuname")
.where(
{
teacherName :"event.idname" //要非常注意这里,传过来的值必须跟数据库里面的变量形式对应,要加""号或者不用要看仔细
})
.get({
success: function (res) {
return res;
}
});
} catch (e) {
console.error(e);
}
}
目前需要解决的问题是:
怎么在老师输入好每个学生的“阅读值”后,将这些值一键inc到微信的云数据库里面。这个问题目前还没解决。