微信小程序学习笔记之表单提交与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技术技巧大全(五)
Jan 22 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
一些主流JS框架中DOMReady事件的实现小结
Feb 12 Javascript
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
Javascript中浮点数相乘的一个解决方法
Jun 03 Javascript
javascript实现浏览器窗口传递参数的方法
Sep 03 Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
微信小程序 image组件遇到的问题
May 28 Javascript
微信小程序加载机制及运行机制图解
Nov 27 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
Oct 28 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
php 无限级 SelectTree 类
2009/05/19 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
php的hash算法介绍
2014/02/13 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
多个python文件调用logging模块报错误
2020/02/12 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
python接口自动化框架实战
2020/12/23 Python
公务员总结性个人自我评价
2013/12/05 职场文书
实习单位接收函模板
2014/01/10 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
MySQL8.0.18配置多主一从
2021/06/21 MySQL