php后端-微信小程序 php后端
想要快速开发一个小程序,需要注意很多环节。 估计很多人对微信小程序的php后台开发还比较陌生,但这也很关键。 让我们来看看详细的开发示例。
1、小程序相对于以往的WEB+PHP建站,只是把web放在微信端,使用小程序的固定格式在前端进行布局、事件触发、数据传输和读取结尾。 服务器端可以用任何后端语言编写,但所有数据必须以JSON的形式返回给小程序。
2、昨天写了登录、注册、忘记密码的功能。 它们本质上是一个小程序的表单提交操作。 所以就拿注册功能来写这个例子。
3.目录图
js文件是逻辑控制,主要是发送请求和接收数据,
json 用于此页面的本地配置并覆盖全局 app.json 配置,
wxss用于设置小程序页面的样式,
wxml是页面,相当于html
4. style和json文件暂时不关心,只想复习一下form表单提交开发
5.wxml文件代码
登记
登录
忘记密码
6.需要了解的几个关键点
A。 Form表单php后端,需要绑定一个submit事件,在小程序中,属性为bindsubmit,
bindsubmit=”formSubmit” 这里的属性值formSubmit可以命名为任何符合规范的值,相当于前面的html
οnsubmit="formSubmit()",是一个函数名,提交时触发formSubmit函数事件,这个函数是用js写的。
b. 其他属性与前面的 HTML 类似。 注意表单必须有name="value",后台处理同之前一样,比如name="username"
PHP 可以使用 $_POST['username'] 来接收。
C、由于小程序没有输入提交按钮,所以每个表单都必须有一个提交按钮。
注册,这个按钮是用来开启提交事件的。
7.index.js代码
页({
数据: {
},
表单提交:函数(e){
如果(e.detail.value.mobile.length==0||e.detail.value.password.length==0){
wx.showToast({
title: '手机号或密码不能为空!',
图标:“正在加载”,
持续时间:1500
})
设置超时(功能(){
wx.hideToast()
},2000)
}else if(e.detail.value.mobile.length != 11){
wx.showToast({
title: '请输入11位手机号码!',
图标:“正在加载”,
持续时间:1500
})
设置超时(功能(){
wx.hideToast()
},2000)
}否则如果(e.detail.value.password.length
||e.detail.value.password.length>20){
wx.showToast({
title: '请输入6-20密码!',
图标:“正在加载”,
持续时间:1500
})
设置超时(功能(){
wx.hideToast()
},2000)
}else if(e.detail.value.password != e.detail.value.repassword){
wx.showToast({
title: '两次密码输入不一致!',
图标:“正在加载”,
持续时间:1500
})
设置超时(功能(){
wx.hideToast()
},2000)
}别的{
wx.request({
网址:'#39;,
标题:{
“内容类型”:“应用程序/x-www-form-urlencoded”
},
方法:“POST”,
数据:{手机:e.detail.value.mobile,密码:e.detail.value.password},
成功:功能(资源){
如果(res.data.status == 0){
wx.showToast({
标题:res.data.info,
图标:“正在加载”,
持续时间:1500
})
}别的{
wx.showToast({
title: res.data.info,//这里打印登录成功
图标:“成功”,
持续时间:1000
})
}
}
})
}
},
})
8. 需要注意的是
Page()方法是必须的,js对象放在里面,用于页面加载时的渲染效果
data:{},数据对象,设置页面中的数据,前端可以通过读取这个对象中的数据来展示。
formSubmit: function 小程序中的方法都是
方法名:function(),其中function可以传入一个参数作为触发当前时间的对象
下面是函数的执行。 由于验证过多,我只摘取一部分了解一下。
如果(e.detail.value.mobile.length==0||e.detail.value.password.length==0){
wx.showToast({
title: '手机号或密码不能为空!',
图标:“正在加载”,
持续时间:1500
})
这里e是当前触发事件的对象,类似于html
οnclick="foo(this)"这个对象,小程序封装了很多内置的调用方法,e.detail.value.mobile
是当前对象name=”mobile”的对象的值e.detail.value.mobile.length是这个值的长度
showToast类似于JS中的alert,弹出框,title是弹出框显示的信息,icon是弹出框的图标状态,目前只加载
以及成功的两种状态。 duration 是弹出窗口在屏幕上显示的时间量。
9.重点来了
wx.request({
网址:'#39;,
标题:{
“内容类型”:“应用程序/x-www-form-urlencoded”
},
方法:“POST”,
数据:{手机:e.detail.value.mobile,密码:e.detail.value.password},
成功:功能(资源){
如果(res.data.status == 0){
wx.showToast({
标题:res.data.info,
图标:“正在加载”,
持续时间:1500
})
}别的{
wx.showToast({
title: res.data.info,//这里打印登录成功
图标:“成功”,
持续时间:1000
})
}
},
失败:功能(){
wx.showToast({
title: '服务器网络错误!',
图标:“正在加载”,
持续时间:1500
})
}
})
wx.request({}) 是一个发起https请求的小程序。 请注意,http 是不可接受的。
这里
a.url 是您请求的 URL。 比如前端POST形式的action='index.php',其中index.php是相对路径,小程序请求的URL必须是网络上的绝对路径。
例如:
b.
标题:{
“内容类型”:“应用程序/x-www-form-urlencoded”
},
由于 POST 和 GET 传输数据的方式不同,所以 POST 的头部必须是
“内容类型”:“应用程序/x-www-form-urlencoded”
GET 的头部可以是 'Accept': 'application/json'
C。 务必指定方法:“POST”默认为“GET”,保持大写
数据:{手机:e.detail.value.mobile,密码:e.detail.value.password},
这里的数据是POST发送给服务器的数据,格式为{name:value}
d. 成功回调函数
成功:功能(资源){
如果(res.data.status == 0){
wx.showToast({
标题:res.data.info,
图标:“正在加载”,
持续时间:1500
})
}别的{
wx.showToast({
标题:res.data.info,
图标:“成功”,
持续时间:1000
})
}
}
e.success:function()是请求状态成功触发的事件,为200。注意,请求成功不是操作成功,请求只是程序和程序之间的连接服务器。
fail:function() 是网络请求不成功时触发的事件。
F。
如果(res.data.status == 0){
wx.showToast({
标题:res.data.info,
图标:“正在加载”,
持续时间:1500
})
}别的{
wx.showToast({
title: res.data.info,//这里打印登录成功
图标:“成功”,
持续时间:1000
})
}
这里有一段代码是跟PHP后台程序相关的,具体过程如下,
1.POST向该接口传递数据,用过THINKPHP的都知道是HOME模块下Login控制下的register方法
2、register方法根据POST过来的数据和数据库进行二次校验。 如果操作成功,返回什么,如果操作失败,返回什么
3、后台PHP代码如下:
控制器 LoginController.class.php
/**
* 用户注册
*/
公共功能寄存器()
{
如果(IS_POST){
$用户 = D("用户");
如果 (!$User->create($_POST, 4)) {
$this->error($User->getError(),'',true);
} 别的 {
如果($用户->注册()){
$this->success('注册成功!','',true);
}别的{
$this->error('注册失败!','',true);
}
}
}
}
模型
UserModel.class.php 的注册方法
公共功能寄存器()
{
$mobile = I('post.mobile');
$password = I('post.password');
$res = D('用户')->添加(数组(
'手机'=> $手机,
'密码'=>md5($密码),
'modifytime'=>date("Ymd H:i:s")
));
返回 $res;
}
以上就是微信小程序php后台开发实例的详解php后端,包含了开发所需的所有小程序代码。 小编详解大家可以快速了解微信小程序的php后台,学习如何开发。 更多相关资讯,请关注微信小程序素材网。