微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
作者:李维山 发布时间:2023-11-22 19:29:44
标签:微信小程序,表单提交,PHP
本文实例讲述了微信小程序学习笔记之表单提交与PHP后台数据交互处理。分享给大家供大家参考,具体如下:
前面一篇结介绍了微信小程序函数定义、页面渲染。这里介绍form表单提交与后台php数据交互处理。
【form表单提交】
form.wxml:
<form bindsubmit="formSubmit" bindreset="formReset">
<view>
昵称:<input type="text" name="nickname" placeholder="请输入昵称" confirm-type="done" />
密码:<input password type="number" name="password" placeholder="请输入6位密码" maxlength="6" />
性别:
<radio-group name="sex">
<label><radio value="女"/>女</label>
<label><radio value="男"/>男</label>
</radio-group>
爱好:
<checkbox-group name="aihao">
<label><checkbox value="cy"/>抽烟</label>
<label><checkbox value="hj"/>喝酒</label>
<label><checkbox value="tt"/>烫头</label>
</checkbox-group>
状态:<switch name="status"/>
<view>成绩:<slider name="grade" show-value ></slider></view>
</view>
<view class="btn-area">
<button formType="submit">提交</button>
<button formType="reset">重置</button>
</view>
</form>
form.js:
Page({
formSubmit: function (e) {
console.log('form发生了submit事件,提交数据:', e.detail.value)
},
formReset: function () {
console.log('form发生了reset事件')
}
})
提交触发formSubmit:
重置触发formReset:
【表单数据提交到PHP后台服务器】
使用 wx.request API发送HTTPS请求
前台form.js:
Page({
formSubmit: function (e) {
wx.request({
url: 'https://www.msllws.top/getdata.php',
data: {
'nickname': e.detail.value.nickname,
'password': e.detail.value.password,
'sex': e.detail.value.sex,
'status': e.detail.value.status,
'aihao': e.detail.value.aihao,
'grade': e.detail.value.grade
},
method:'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: function (res) {
console.log(res.data)
}
})
}
})
后台接口getdata.php:
<?php
$postdata = $_POST; //获得POST请求提交的数据
//打印日志 方便查看
$fp = fopen('./log.txt','a+');
fwrite($fp,var_export($postdata,true));
fclose($fp);
echo 666; //返回状态或数据
提交后日志文件log.txt内容如下,这些就是PHP后台获得的数据,可以对其进行数据库操作:
array (
'nickname' => '李栋',
'password' => '123456',
'sex' => '男',
'status' => 'true',
'aihao' => 'cy,hj,tt',
'grade' => '66',
)
【PHP后台对提交过来的数据进行判断、处理,返回状态,前台小程序给出提示】
示例如下,如果输入名字提示提交成功,不输入名字提示名字为空。
后台接口getdata.php:
<?php
$postdata = $_POST;
$fp = fopen('./log.txt','a+');
fwrite($fp,var_export($postdata,true));
fclose($fp);
if($postdata['nickname']){
$arr['state'] = 1;
$arr['info'] = '提交成功';
}else{
$arr['state'] = 0;
$arr['info'] = '名字为空';
}
echo json_encode($arr);die;
前台form.js:
Page({
formSubmit: function (e) {
wx.request({
url: 'https://www.msllws.top/getdata.php',
data: {
'nickname': e.detail.value.nickname,
'password': e.detail.value.password,
'sex': e.detail.value.sex,
'status': e.detail.value.status,
'aihao': e.detail.value.aihao,
'grade': e.detail.value.grade
},
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: function (res) {
if (res.data.state == 1) {
wx.showToast({
title: res.data.info
});
}else{
wx.showToast({
title: res.data.info
});
}
}
})
}
})
【请求PHP后台API接口,获得数据,渲染页面】
示例如下,获得10条博客信息显示在页面中(接口用tp5写的,普通php文件用echo json_encode();
返回数据)。
后台接口Getdata.php:
<?php
namespace app\home\controller;
use think\Controller;
class Getdata extends Controller
{
public function index()
{
//查询10篇博客
$whe['is_del'] = 'N';
$artinfo = db('article')->field('`article_id`,`article_title`,`thumbnail`')->where($whe)->limit(10)->select();
//拼接缩略图路径
foreach ($artinfo as $k => $v) {
$artinfo[$k]['thumbnail'] = 'https://www.msllws.top'.$v['thumbnail'];
}
return json($artinfo);
}
}
前台data.js:
Page({
onLoad: function () {
var that = this
wx.request({
url: 'https://www.msllws.top/Getdata',
headers: {
'Content-Type': 'application/json'
},
success: function (res) {
that.setData({
artinfo: res.data
})
}
})
}
})
前台data.wxml:
<view wx:for="{{artinfo}}" wx:for-item="artinfo">
<view>{{artinfo.article_title}}</view>
<image src="{{artinfo.thumbnail}}"></image>
</view>
页面加载,显示如下:
希望本文所述对大家微信小程序开发有所帮助。
来源:https://blog.csdn.net/msllws/article/details/82801034


猜你喜欢
- 图片非常重要,它们可以让你的页面更好看,更引人注目。但是,高质量和漂亮的图片常常会很大,它们会让页面加载变慢并消耗更多带宽。所以我们,这些设
- mean_squared_error / mse 均方误差,常用的目标函数,公式为((y_pred-y_true)**2).mean()mo
- 这篇文章主要介绍threading模块中的主类Thread的一些主要方法,实例代码如下:''' Crea
- 安装selenium打开命令控制符输入:pip install -U selenium火狐浏览器安装firebug:www.firebug.
- time模块1:概述时间表示的分类时间戳格式化的时间字符串结构化时间时间戳:时间戳表示的是从1970年1月1日整0点到目前秒的偏移量,数据类
- 背景:因为工作需要,公司给每个员工都分配了一个邮箱 公司的各种业务都通过邮箱发送。虽然给每个员工的电脑都设置pop3登录但是他们的程序设定有
- Mysql的分页的两个参数select * from user limit 1,21表示从第几条数据开始查(默认索引是0,如果写1,从第二条
- 最近一直在“深山老林”中修炼“支付宝新版收银台”,经历了白板设计,视觉设计,前端开发,前后端联调各个阶段。点点滴滴……重点谈谈对交互设计的感
- HTML 5基本思维概念形成于2003年,之后W3C对页面超文本应用技术工作小组(WHATWG)开发的HTML草图颇感兴趣,这个小组的开发人
- 本文为大家分享了mysql 5.7.18 Archive压缩版安装的具体方法,供大家参考,具体内容如下文章参考:5.7.17 winx64安
- mysql-5.7.23-winx64 解压版详细安装教程,供大家参考,具体内容如下1、Click here to download Mys
- 想要查看每次训练模型后的 loss 值变化需要如下操作loss_value= [ ]self.history = model.fit(sta
- Object.freeze()Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这
- 由以下函数代替该功能:def cv_imread(file_path): cv_img=cv2.imdecode(np.fromfile(f
- 本文主要介绍了IDEA配置连接MYSQL数据库遇到Failed这个问题解决,分享给大家,具体如下: &nb
- 1 HSV上下限颜色的HSV上下限如下表:2 追踪单个颜色import cv2 as cvimport numpy as npcap = c
- 前言大家在使用python做web端自动化时会出现各种各样的问题,下面我会告诉大家selenium无法启动浏览器的问题检查是否安装selen
- 问题问题1Python是一种动态语言,不支持类型检查。当需要对一个对象执行类型检查时,可能会采用下面的方式:class Foo(object
- 1.Django的简介Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Djang
- 说起页面执行时间相信大家并不陌生,如果你经常逛论坛,就会发现很多论坛底部都显示有页面执行时间,那么什么是页面执行时间呢?我个人理解是一个网页