이 글은 위챗 미니 프로그램 PHP 백엔드 양식 제출 예시에 대한 자세한 설명을 중심으로 소개합니다. 필요한 친구들은 참고하시면 됩니다
위챗 미니 프로그램 PHP 백엔드 양식
1과 비교해보세요. 이전 미니 프로그램 WEB+PHP 웹 사이트 구축에 대해 개인적으로 이해하기로는 웹을 WeChat 측에 배치하고 레이아웃, 이벤트 트리거 및 데이터 전송을 위해 프런트 엔드에 있는 미니 프로그램의 고정 형식을 사용하고 서버 측은 모든 백엔드 언어로 작성할 수 있지만 모든 데이터는 JSON 형식으로 애플릿에 반환되어야 합니다.
2. 어제 로그인 등록 및 비밀번호 분실 기능을 작성했습니다. 이는 본질적으로 양식 제출 작업입니다. 그러면 등록 기능을 사용하여 이 예제를 작성해 보겠습니다.
3. 디렉터리 다이어그램
js 파일은 주로 요청을 보내고 데이터를 받는 논리적 컨트롤입니다.
json은 이 페이지의 로컬 구성에 사용되며 전역 app.json 구성을 재정의합니다.
wxss는 페이지의 스타일을 설정하는 데 사용됩니다.
wxml은 html
4과 동일합니다. 지금은 스타일과 json 파일에 대해 신경쓰지 않겠습니다. 양식 제출을 검토하고 싶습니다
5.Wxml 파일 코드
<view class="load-head"> <image src="../../images/return.png" /> 注册 </view> <view class="login"> <form bindsubmit="formSubmit"> <view class="field clearfix"> <label for="name"><image src="../../images/phone.png" /></label> <input id="name" name="mobile" class="login-input" type="text" placeholder="请输入手机号" /> </view> <view class="field clearfix"> <label for="password"><image src="../../images/code.png" /></label> <input id="password" class="login-input" type="password" placeholder="请输入验证码" /> <button class="get-code" hover-class="code-hover">获取验证码</button> </view> <view class="field clearfix"> <label for="password"><image src="../../images/password.png" /></label> <input id="password" name="password" class="login-input" type="password" placeholder="请设置6-20位登录密码" /> </view> <view class="field clearfix"> <label for="repassword"><image src="../../images/password.png" /></label> <input id="repassword" name="repassword" class="login-input" type="password" placeholder="请输入确认密码" /> </view> <button class="btn_login" formType="submit">注册</button> </form> <view class="reg_forget clearfix"> <navigator url="../login/index" class="btn_reg">登录</navigator> <navigator url="../forget/index" class="btn_forget">忘记密码</navigator> </view > </view>
6. 몇 가지 핵심 사항을 이해해야 합니다
a.양식 양식은 제출 이벤트를 바인딩해야 합니다. 미니 프로그램에서 속성은 bindsubmit,
bindsubmit=” formSubmit”입니다. 여기서 속성 값 formSubmit은 사양을 준수하는 모든 값으로 이름을 지정할 수 있으며 이는 이전 HTML onsubmit="formSubmit()"과 동일합니다. , 는 제출 시 formSubmit 함수 이벤트를 트리거하는 함수 이름입니다. 이 함수는 js로 작성됩니다.
b. 다른 속성은 이전 HTML과 유사합니다. 양식에는 name="value"가 있어야 하며 백엔드 처리는 이전과 동일합니다. 예를 들어, name="username" PHP는 $_POST[를 사용할 수 있습니다. '사용자 이름']을 수신합니다.
C. 미니 프로그램에는 입력 제출 버튼이 없으므로 각 양식마다 제출 버튼이 있어야 하며,
, 이 버튼입니다. 제출 이벤트를 열 때 사용됩니다.
7.index.js code
Page({ data: { }, formSubmit: function(e) { if(e.detail.value.mobile.length==0||e.detail.value.password.length==0){ wx.showToast({ title: '手机号码或密码不得为空!', icon: 'loading', duration: 1500 }) setTimeout(function(){ wx.hideToast() },2000) }else if(e.detail.value.mobile.length != 11){ wx.showToast({ title: '请输入11位手机号码!', icon: 'loading', duration: 1500 }) setTimeout(function(){ wx.hideToast() },2000) }else if(e.detail.value.password.length <6 ||e.detail.value.password.length>20){ wx.showToast({ title: '请输入6-20密码!', icon: 'loading', duration: 1500 }) setTimeout(function(){ wx.hideToast() },2000) }else if(e.detail.value.password != e.detail.value.repassword){ wx.showToast({ title: '两次密码输入不一致!', icon: 'loading', duration: 1500 }) setTimeout(function(){ wx.hideToast() },2000) }else{ wx.request({ url: 'https://shop.yunapply.com/home/Login/register', header: { "Content-Type": "application/x-www-form-urlencoded" }, method: "POST", data:{mobile:e.detail.value.mobile,password:e.detail.value.password}, success: function(res) { if(res.data.status == 0){ wx.showToast({ title: res.data.info, icon: 'loading', duration: 1500 }) }else{ wx.showToast({ title: res.data.info,//这里打印出登录成功 icon: 'success', duration: 1000 }) } } }) } }, })
8.
Page()는 페이지가 로드될 때 효과를 렌더링하기 위한 js 객체를 포함하는 필수 메소드입니다
data: {}, 데이터 객체, 페이지에 데이터를 설정하면 프런트 엔드에서 이 객체의 데이터를 읽어 표시할 수 있습니다.
formSubmit: function 미니 프로그램의 메소드는 모두 메소드 이름입니다: function(), 여기서 함수는 현재 시간을 트리거하는 객체로 매개변수를 전달할 수 있습니다.
다음은 함수의 실행입니다. 검증이 너무 많아서 일부만 보여드리겠습니다.
if(e.detail.value.mobile.length==0||e.detail.value.password.length==0){ wx.showToast({ title: '手机号码或密码不得为空!', icon: 'loading', duration: 1500 })
여기서 e는 HTML onclick="foo(this)" 이 객체와 유사하게 현재 이벤트를 트리거하는 객체입니다. 미니 프로그램은 e.detail.value와 같은 많은 내장 호출 메서드를 캡슐화합니다. .mobile은 현재 객체 name="mobile"의 e.detail.value.mobile.length 값이 이 값의 길이입니다
showToast는 JS의 Alert와 유사하며 팝업 상자, 제목은 표시되는 정보입니다. 팝업 상자에서 아이콘은 팝업 상자입니다. 상자의 아이콘 상태에는 현재 로드 및 성공의 두 가지 상태만 있습니다. 기간은 팝업 상자가 화면에 표시되는 시간입니다.
9. 핵심은 다음과 같습니다
wx.request({ url: 'https://shop.com/home/Login/register', header: { "Content-Type": "application/x-www-form-urlencoded" }, method: "POST", data:{mobile:e.detail.value.mobile,password:e.detail.value.password}, success: function(res) { if(res.data.status == 0){ wx.showToast({ title: res.data.info, icon: 'loading', duration: 1500 }) }else{ wx.showToast({ title: res.data.info,//这里打印出登录成功 icon: 'success', duration: 1000 }) } }, fail:function(){ wx.showToast({ title: '服务器网络错误!', icon: 'loading', duration: 1500 }) } })
wx.request({})는 https 요청을 시작하는 작은 프로그램입니다.
Here
a.url은 요청한 URL입니다. 예를 들어 프런트엔드에서는 POST 형식에서 action='index.php'를 사용했습니다. 여기서 Index.php는 상대 경로이고, 요청한 URL은 다음과 같습니다. 미니 프로그램은 절대 네트워크 경로여야 합니다.
예: https://shop.com/home/Login/register
b.
header: { "Content-Type": "application/x-www-form-urlencoded" },
POST와 GET은 데이터를 전송하는 방식이 다르기 때문에 POST의 헤더는
"Content"여야 합니다. - 유형": "application/x-www-form-urlencoded"
GET의 헤더는 'Accept'일 수 있습니다: 'application/json'
c. 반드시 메소드를 지정하십시오: "POST" 기본값은 " GET", 대문자로 유지하세요
data:{mobile:e.detail.value.mobile,password:e.detail.value.password},
여기의 데이터는 서버에 전송된 데이터 POST입니다. {name:value}
d.Success 콜백 함수
success: function(res) { if(res.data.status == 0){ wx.showToast({ title: res.data.info, icon: 'loading', duration: 1500 }) }else{ wx.showToast({ title: res.data.info, icon: 'success', duration: 1000 }) } }
e.success:function() 형식은 요청 상태(200)에 의해 성공적으로 트리거되는 이벤트입니다. 요청은 성공적인 작업을 의미하지 않습니다. 요청은 단지 프로그램이 도착했다는 것입니다. 이 줄은 서버 측에서 열려 있습니다.
fail:function()은 네트워크 요청이 실패할 때 트리거되는 이벤트입니다.
f.
if(res.data.status == 0){ wx.showToast({ title: res.data.info, icon: 'loading', duration: 1500 }) }else{ wx.showToast({ title: res.data.info,//这里打印出登录成功 icon: 'success', duration: 1000 }) }
여기의 코드 조각은 PHP 백엔드 프로그램과 관련이 있습니다.
1.POST通过数据到https://shop.com/home/Login/register这个接口,用过THINKPHP的就会知道是HOME模块下的Login控制下的register方法
2.register方法根据POST过来的数据,结合数据库进行二次验证,如果操作成功,返回什么,如果操作失败,返回什么
3.后端PHP代码如下:
控制器 LoginController.class.php
/** * 用户注册 */ public function register() { if (IS_POST) { $User = D("User"); if (!$User->create($_POST, 4)) { $this->error($User->getError(),'',true); } else { if ($User->register()){ $this->success('注册成功!','',true); }else{ $this->error('注册失败!','',true); } } } }
模型
UserModel.class.php 的register方法
public function register() { $mobile = I('post.mobile'); $password = I('post.password'); $res = D('User')->add(array( 'mobile'=> $mobile, 'password'=>md5($password), 'modifytime'=>date("Y-m-d H:i:s") )); return $res; }
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
위 내용은 WeChat 미니 프로그램에서 PHP 백엔드 양식 제출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!