先将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 })
最后的效果如下: