小程序--(获取表单数据和请求接口)

本文讲述了作者作为后端程序员初次接触小程序前端时,如何进行数据绑定和请求接口的过程。从定义数据和获取、到提交请求的步骤,详细说明了在JS中定义数据、WXML动态获取输入值、事件处理以及如何通过wx请求接口实现数据提交。

前言

最近新入职了新公司,年轻的我本以为逃离了一个后端程序员去写前端的恐惧,但是事与愿违,终究还是来了.
       入职第一天,就来和我讨论让我去获取前端的数据传入后台,原本我以为是我写接口去接收,没想到是我去小程序前端绑定数据,还要调整一样样式,我蒙了.但是,生活所迫,一个小程序前端0基本的后台人员开始了攻克绑数据的难关开始了.

定义数据和获取,入门必要

  • 首先在js中的data上定义数据,这一步很重要

  • 然后wxml中开始进行input数据的动态获取(也就是随时获取值)
<input bindinput='diseaseNameInput' value="{{type}}"></input>
  • 在js中进入一个事件
  // 实时获取input的数据值
diseaseNameInput: function(e) {
 this.setData({
   type: e.detail.value
 })
}
  • 以上2步是把数据定义,并动态set数据,保证后面提交获取的数据准确性

     提交请求

  • 先获取所有的表单数据或需要的数据
//把数据给到 formObject
var formObject = e.detail.value;
  • formObject包含了所有的表单数据或需要的数据,然后开始取值
//例如前面定义的一个值  type
var typeValue = formObject.type
  • wx请求接口
    wx.request({
        url: 接口地址(必须是https的),
        method: 'POST', //请求方式
        header: {
          'content-type': 'application/json', // 默认值 
            //有些post请求要用 'content-Type': 'application/x-www-form-urlencoded'
        },
        data: {
           type: typeValue //刚才获取到的数据
        },
        success: function(res) {
          console.log(res.data)
          wx.hideLoading();

          me.setData({
            //返回成功,设置数据
          });
          
           //弹窗事件
          wx.showToast({ 
              title: '保存成功' ,
              icon:'success',
              duration:2000
          })

        }
      })

 

  • 测试一下,发现数据获取到了 ... 调试成功

后言

     一个后端程序员为了生活的无奈~~

### 微信小程序提交表单获取数据的方法 在微信小程序中,提交表单获取数据一个常见需求。可以通过绑定 `form` 组件的 `bindsubmit` 或 `catchsubmit` 事件来捕获用户的输入数据,并对其进行处理。 #### 表单提交的基本原理 当用户填写表单并点击提交按钮时,小程序会触发绑定到 `<button>` 上的 `formType="submit"` 的事件处理器。此时,可以通过 `event.detail.value` 获取表单中的所有控件值[^1]。 #### 示例代码 ##### WXML 文件 ```html <form bindsubmit="onSubmit"> <view class="section"> <!-- 用户名 --> <label>用户名:</label> <input name="username" placeholder="请输入用户名" /> </view> <view class="section"> <!-- 密码 --> <label>密码:</label> <input type="password" name="password" placeholder="请输入密码" /> </view> <view class="section"> <!-- 手机号 --> <label>手机号:</label> <input type="number" name="phone" placeholder="请输入手机号" /> </view> <button formType="submit">提交</button> </form> ``` ##### JS 文件 ```javascript Page({ onSubmit(event) { // 获取表单数据 const formData = event.detail.value; // 输出表单数据至控制台 console.log('表单数据:', formData); // 进行简单验证 (假设用户名密码必填,手机号需符合正则) if (!formData.username || !formData.password) { wx.showToast({ title: '用户名或密码不能为空', icon: 'none', }); return; } const phoneRegex = /^1\d{10}$/; // 正则匹配手机号 if (!phoneRegex.test(formData.phone)) { wx.showToast({ title: '手机号格式错误', icon: 'none', }); return; } // 如果验证成功,可以继续进行后续逻辑(如发送请求) wx.request({ url: 'https://example.com/api/submitForm', // 替换为目标接口地址 method: 'POST', data: formData, success(res) { wx.showToast({ title: '提交成功', icon: 'success', }); }, fail() { wx.showToast({ title: '提交失败', icon: 'none', }); }, }); }, }); ``` #### 关键点解析 1. **`form` 组件**:所有的表单控件都需要放在 `<form>` 标签内部才能正常工作。 2. **`name` 属性**:每个表单控件必须设置 `name` 属性,该属性将成为返回的对象中的键[^2]。 3. **`event.detail.value`**:这是表单提交事件的核心部分,包含了所有带有 `name` 属性的表单项及其对应值。 4. **正则表达式验证**:为了确保数据的有效性,通常会在客户端使用正则表达式对特定字段进行校验[^1]。 --- ### 性能与安全性提示 -前端完成基本的验证后,仍需在服务端再次验证接收到的数据,防止恶意攻击或意外情况发生。 - 尽量减少不必要的网络请求,提升用户体验。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值