先将form表单写入Page的data,接着再从data里取出来写入数据库?或者直接获取form表单数据时就写进数据库,无须更新page里面的data,不过,如果要在其他页面再写数据库的话,还是先更新页面的data,再在其他页面取出该页面的data进行相关的操作吧。
page_02.wxml
1 <view class='forms'>
2 <form bindsubmit='getForm'>
3 <view class='getform'>
4 <view>用戶名:
5 <input type='text' name='username' placeholder='請輸入用戶名'/>
6 </view>
7 <view>年齡:
8 <input type='text' name='age' placeholder='請輸入年齡'></input>
9 </view>
10 <view>性別:
11 <input type='text' name='gender' placeholder='請輸入性別'></input>
12 </view>
13 </view>
14
15 <view class="btn-area">
16 <button formType="submit">Submit</button>
17 </view>
18 </form>
19
20 <view class="btn-area">
21 <button bindtap='getData'>Get</button>
22 </view>
23 </view>
20~22行是操作数据库的按钮
page_02.wxss
样式没写,保持最原始的
.btn-area{
background-color: #e4e4e4;
width: 30%;
margin: auto; /*居中處理*/
border-radius: 20rpx;
margin-top: 10px;
}
page_02.js
主要有两个函数,getForm是用form表单的数据更新page里面的data
getData用来取出data中的数据写入云数据库,该函数使用了promise风格
1 // pages/page_02/page_02.js
2 Page({
3
4 /**
5 * 页面的初始数据
6 */
7 data: {
8 username:"",
9 age:0,
10 gender:""
11
12 },
13
14 /**
15 * 生命周期函数--监听页面加载
16 */
17 onLoad: function (options) {
18
19 },
20
21 /**
22 * 生命周期函数--监听页面初次渲染完成
23 */
24 onReady: function () {
25
26 },
27
28 getForm:function(e){
29 var formdata = e.detail.value;
30 this.setData({
31 "data.username":formdata.username,
32 "data.age":formdata.age,
33 "data.gender":formdata.gender
34 })
35 console.log("更新data",e)
36 },
37
38 getData:function(e){
39 var getdata = this.data;
40 const db = wx.cloud.database();
41 db.collection("user_info").add({
42 data:{
43 username:getdata.data.username,
44 age:getdata.data.age,
45 gender:getdata.data.gender
46 }
47 }).then(res=>{
48 console.log("添加至數據庫成功",res)
49 }).catch(res=>{
50 console.log("添加失敗",res)
51 })
52 }
53 })
最后的效果如下: