微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解


Posted in Javascript onMarch 28, 2019

本文实例讲述了微信小程序学习笔记之表单提交与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:

微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解

重置触发formReset:

微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解

【表单数据提交到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后台数据交互处理图文详解

【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后台数据交互处理图文详解

【请求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>

页面加载,显示如下:

微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
浅谈Javascript中匀速运动的停止条件
Dec 19 Javascript
基于javascript编写简单日历
May 02 Javascript
JS获取复选框的值,并传递到后台的实现方法
May 30 Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 Javascript
jQuery实现拖动效果的实例代码
Jun 25 jQuery
template.js前端模板引擎使用详解
Oct 10 Javascript
Webpack path与publicPath的区别详解
May 03 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
May 10 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 Javascript
layer 关闭指定弹出层的例子
Sep 25 Javascript
深入理解es6块级作用域的使用
Mar 28 #Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 #Javascript
详解React服务端渲染从入门到精通
Mar 28 #Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
Mar 28 #Javascript
JavaScript刷新页面的几种方法总结
Mar 28 #Javascript
Vue批量图片显示时遇到的路径被解析问题
Mar 28 #Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
Mar 28 #Javascript
You might like
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
linux下 C语言对 php 扩展
2008/12/14 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
提示$ is not defined错误分析及解决
2013/04/09 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
python logging模块的使用详解
2020/10/23 Python
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
中专生的个人自我评价
2013/12/11 职场文书
四年大学自我鉴定
2014/02/17 职场文书
培训讲师岗位职责
2014/04/13 职场文书
服务之星事迹材料
2014/05/03 职场文书
小学语文业务学习材料
2014/06/02 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
见习报告怎么写
2014/10/31 职场文书
音乐剧猫观后感
2015/06/04 职场文书
初中班主任教育随笔
2015/08/15 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL