小程序将form表单数据写入云数据库

博客讨论了表单数据写入数据库的方式,可先将表单写入Page的data再取出写入数据库,也可直接写入。若要在其他页面操作,可先更新页面data。还介绍了page_02.js中的getForm和getData函数,getData用promise风格将数据写入云数据库。

先将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 })

 最后的效果如下:

 

转载于:https://www.cnblogs.com/Guhongying/p/10826029.html

### 微信小程序实现数据库写入操作 #### 小程序端初始化 Bmob SDK 并完成数据写入 在微信小程序中,可以通过引入第三方服务如 Bmob 来快速实现数据存储功能。以下是基于 Bmob 的具体实现方法: 首先,在 `app.js` 文件中初始化 Bmob SDK[^1]: ```javascript App({ onLaunch() { // 初始化 Bmob SDK const Bmob = require("bmob-miniprogram-sdk"); Bmob.initialize("your-application-id", "your-rest-api-key"); } }); ``` 接着,在页面逻辑文件中调用接口完成数据写入操作: ```javascript Page({ saveDataToDatabase(e) { const userInformation = e.detail.value; const UserTable = Bmob.Object.extend("User"); // 创建对象模型 const userInstance = new UserTable(); userInstance.set("name", userInformation.name); // 设置字段值 userInstance.set("age", parseInt(userInformation.age)); userInstance.save().then(res => { console.log("保存成功:", res); }).catch(err => { console.error("保存失败:", err); }); } }); ``` 以上代码片段展示了如何通过 Bmob 提供的服务向云端数据库新增一条记录。 --- #### 使用 PHP 接收表单提交并将数据存入 MySQL 数据库 如果希望自定义服务器环境,则可通过后端脚本处理来自前端的数据请求。下面是一个完整的流程说明以及对应的示例代码。 ##### 步骤一:配置 PHP 脚本连接到本地或远程的 MySQL 数据库[^3] 创建名为 `insert.php` 的文件用于接收 POST 请求参数并执行 SQL 插入语句: ```php <?php $host = '127.0.0.1'; // 替换为实际主机地址 $user = 'root'; // 用户名 $password = '123456'; // 密码 $dbName = 'test_database'; // 数据库名称 $con = new mysqli($host, $user, $password, $dbName); if ($con->connect_error) { die('Connection failed: ' . $con->connect_error); } $name = $_POST['name']; $age = intval($_POST['age']); $sql = "INSERT INTO users (name, age) VALUES ('$name', '$age')"; if ($con->query($sql) === TRUE) { echo json_encode(['status' => 'success']); } else { echo json_encode(['status' => 'error', 'message' => $con->error]); } ?> ``` 上述脚本实现了基本的安全防护措施,比如将年龄转换成整数类型以防注入攻击等问题发生。 ##### 步骤二:修改小程序中的网络请求部分以便发送数据给后台API[^2] 更新业务逻辑函数如下所示: ```javascript Page({ submitForm(e) { wx.request({ url: 'https://example.com/insert.php', method: 'POST', data: { name: e.detail.value.userName, age: e.detail.value.userAge }, header: {'content-type': 'application/x-www-form-urlencoded'}, success(res) { if (res.data.status === 'success') { wx.showToast({title: '保存成功'}); } else { wx.showModal({title: '错误提示', content: res.data.message || ''}); } }, fail() { wx.showToast({icon: 'none', title: '网络异常,请稍后再试'}); } }); } }); ``` 此段代码负责构建 HTTP 请求体并通过指定 URL 地址传递至目标服务器上运行的相关脚本进行进一步解析与储存动作。 --- ### 注意事项 为了保障系统的稳定性和安全性,请务必遵循最佳实践指南来设计您的应用架构。例如设置合理的权限控制机制防止未授权访问;采用 HTTPS 加密传输保护敏感资料免受窃听威胁等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值