mui中使用ajax实现登录功能

mui中使用ajax实现登录功能

引言

mui封装了常用的Ajax函数,支持GET、POST请求方式,在mui.ajax方法基础上,mui 进一步简化出最常用的mui.get、mui.getJSON、mui.post三个方法。详细见https://dev.dcloud.net.cn/mui/ajax/

1. 实现效果

使用mui搭建登录界面,使用ajax来向后端发送请求实现登录效果。
在这里插入图片描述

2. 实现代码

前端部分

html部分

<div class="mui-content"  id="bg">
	<form id='login-form' class="mui-input-group" name="login">
		<div class="mui-input-row" id="put">
			<label>账号</label>
			<input id='account' type="text" class="mui-input-clear mui-input" placeholder="用户名/邮箱/手机号" name="username">
		</div>
		<div class="mui-input-row" id="put">
			<label>密码</label>
			<input id='password' type="password" class="mui-input-clear mui-input" placeholder="密码登录" name="password">
		</div>
	</form>
	
	<div class="mui-content-padded" id="login-box">
		<button id='login' class="mui-btn mui-btn-block mui-btn-danger" style="background-color: #007aff;border: 1px solid #007aff;">登录</button>
		<div id="des">
			<a id='reg'>注册账号</a>  
			<a id='forgetPassword'>忘记密码</a>
		</div>
	</div>
	<img src="images/login/air.png" id="air"/>
	<div class="mui-content-padded oauth-area" style="position: relative;top: 20rem;">

	</div>
</div>

js部分

(function($, doc) {
    
    
	$.init();
	//这里的mobile文件夹后台中专门用来与mui交互的模块,可以按自己需求来定义
	localStorage.setItem("serverUrl", 'http://47.96.167.26/index.php/mobile/');	
	$.plusReady(function() {
    
    
		plus.screen.lockOrientation("portrait-primary");
		var settings = app.getSettings();
		var state = app.getState();
		var mainPage = plus.webview.getWebviewById("main");
		var main_loaded_flag = false;

		loginUrl = localStorage.getItem("serverUrl") + "User/login";	//后台登录模块
		//点击登录,向服务器发送POST请求
		document.getElementById("login").addEventListener("tap",function(){
    
    
			var username=document.login.username.value;
			var password=document.login.password.value;
			console.log("local:"+username+password);
			mui.post(loginUrl,{
    
    
					username:username,
					password:password
				},function(data){
    
    
					// alert(JSON.stringify(data))
					// console.log(JSON.stringify(data));
					if(data.msg=="success"){
    
    
						localStorage.setItem("user",JSON.stringify(data.data))
						var user=localStorage.getItem("user");
						console.log(JSON.stringify(data.data));
						// alert(JSON.stringify(JSON.parse(user)))
						toMain();
					}else if(data.msg=="password"){
    
    
						password=document.login.password.value="";
						alert("密码错误!请重新输入")
					}else if(data.msg=="username"){
    
    
						document.login.username.value="";
						password=document.login.password.value="";
						alert("用户名错误!请重新输入")
					}else{
    
    
						alert("登陆异常!")
					}
				},'json'
			);
		})
	});
}(mui, document));

后端部分

基于tinkphp框架,建立mobile文件夹,用来实现和mui前端交互。
在这里插入图片描述
controller-User.php

<?php
namespace app\mobile\controller;
use think\Controller;
use think\Db;
use think\Loader;
class User extends Controller
{
    
    
    public function login()
    {
    
    
        if(request()->isPost()){
    
    
            $data=input();
            $user=Db::name("student")->where("suser",$data["username"])->find();
            if ($user==null){
    
    
                return $this->success("username");
            }elseif ($user["spassword"]!=$data["password"]){
    
    
                return $this->success("password");
            }else{
    
    
                return $this->success("success",'',$user);
            }
        }
    }
}

model-User.php:用来与数据库交互

<?php
namespace app\mobile\model;
use think\Model;
class User extends Model
{
    
    
    public function login($data){
    
    
        $user=db('user')->where('username',$data['username'])->find();
        if($user){
    
    
            if($user['password']==md5($data['password'])){
    
    
                return 1;
            }else{
    
    
                return 0;
            }
        }else{
    
    
            return -1;
        }
    }
}

validate-User.php :完成一些格式验证的功能。

<?php
namespace app\mobile\validate;
use think\Validate;
class User extends Validate
{
    
    
    protected $rule = [
        'username|用户名'  	=> 'require|max:30|unique:user',
        'password|密码' 	=> 'require|min:6|max:30',
    ];
    protected $message = [
    ];
    protected $scene = [
        'register'  =>  ['username','password'],
    ];
}

猜你喜欢

转载自blog.csdn.net/weixin_43288600/article/details/121170798
今日推荐