WHCSRL 技术网

“爱阅读登记”项目——已做到将云数据库里的学生姓名显示在界面上(待解决一键录入批量更新录入的数据问题)

这个是目前做到的:
在这里插入图片描述

登记入口的代码已经在上一章记录好了:
微信小程序实现账号密码登入和传值显示

这个是逻辑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)
      })
    }  ,
     })


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

这个是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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

因为涉及到20以上个数据的返回,所以我用了云函数来请求超过20个以上的学生。
getname的云函数
里面的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);
 }
 }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

目前需要解决的问题是:
怎么在老师输入好每个学生的“阅读值”后,将这些值一键inc到微信的云数据库里面。这个问题目前还没解决。

推荐阅读