微信小程序账号密码登入和传值的实现方法

目录

小程序实现账号密码登入和传值显示

要帮学校做一个简单的阅读值登记系统,-1基础的我只能硬着头皮努力学习了!!
实现的效果是这样的:

有一个问题:就是登入成功后会显示无此用户名,不知道什么原因,有看出来麻烦说明下。

文章后面有拿去使用后的注意事项

接下来详细的记录下编写过程,方便自己以后查找。

首先是登入页面的login.wxml

<!--pages/login/login.wxml-->
<view class="content">

<view class="account">
<view class="title">账号</view>
<view class="num"><input bindinput="inputName" placeholder="教师姓名"  placeholder-style="color:#999999;"/></view>
</view>

<view class="hr"></view>

<view class="account">
<view class="title">密码</view>
<view class="num">
<input bindinput="inputPassword" placeholder="输入密码" password/></view>
</view>

<view class="hr"></view>

<button class="btn" type="primary" bindtap="login">登入</button> 

</view>

这个是login.wxss

/* pages/login/login.wxss */
.content{
  margin-top: 40px;
}
.account{
   display: flex;
   flex-direction: row;
   padding-left: 20px;
   padding-top: 20px;
   padding-bottom: 10px;
   width: 90%;
}
.title{
   margin-right: 30px;
   font-weight: bold;
}
.hr{
  border: 1px solid #cccccc;
  opacity: 0.2;
  width: 90%;
  margin: 0 auto;
  background-color: red;
}
.btn{
  width: 90%;
  margin-top:40px;
  color: #999999;
}

这个是login.js

let app = getApp();
// 获取云数据库引用
const db = wx.cloud.database();
// const admin = db.collection('user');//注意,这里就是刚才的集合的名字——user
let studentname = null;//变量,用于存放用户输入的账号
let password = null;//变量,用于存放用户输入的密码

Page({
  /**
   * 页面的初始数据
   */
 // data: {
  //},

  //输入用户名
  inputName: function (event) {
    studentname  = event.detail.value//将用户输入的账号放到变量里面
  },
  //输入密码
  inputPassword(event) {
    password = event.detail.value//将用户输入的密码放到变量里面
  },

  //登陆函数
    async  login() {
    const db = wx.cloud.database()
    let count = await db.collection('user').count()     //获取数据库总个数
    count=count.total     //将总个数赋值给count
  //通过for循环做多次请求,并把多次请求的数据放在一个数组里面
      let all = []
      for(let i = 0; i<count; i+=20){
        let list = await db.collection('user').skip(i).get()
        all=all.concat(list.data);
        console.log('返回的结果',all)

        for(let i=0;i<all.length;i++ ){
          if (studentname===all[i].stname) {
            if (password===all[i].password) {
              console.log('登入成功')
              wx.showToast({
                title: '登入成功',
                icon:'success',
                duration:2500
              })
              wx.reLaunch({
                url: '/pages/index/index?studentname='+studentname,//这里是成功登录后跳转的页面',
              })

            } else {
              console.log('密码错误')
              wx.showToast({
                title: '密码错误',
                icon:'none',
                duration:2500
              })
            }

          } else {
            console.log('登入失败')
            wx.showToast({
              title: '无此用户名!!',
              icon:'none',
              duration:2500
            })
          }
  }
      }
        }
        })   

在拿去使用的时候,需要更改和注意的地方如下:

1.我的云数据库的集合名称叫做user,在登入的时候,代码需要查找账号studentname和密码password。拿去使用后需要更改代码里面数据库集合的名称和里面的命名。

2.在login.js

3.重点讲下带参传值

微信路由有很多种方式,因为我的需要跳转到tabBar页面,所以使用了wx.reLaunch。

你也可以使用wx.navigateTo来进行带参传值。

但是如果你是用wx.switchTab的话是不可以的,这个微信开发者文档里面有说明可以详细的看下:

微信开发者文档

在进行tabBar页面跳转时,你需要做的是在

app.json中进行tabBar的代码说明,比如是我是两个,所以就写了2个。

 

注意!!!先要在app.json里面建立这2个文件,才能在进行tabBar的代码。

 "tabBar": {
    "color": "#Fc0",
    "selectedColor": "#f4c903",
    "borderStyle": "white",
    "list": [
      {
        "selectedIconPath": "images/1.png",
        "iconPath": "images/1.png",
        "pagePath": "pages/index/index",
        "text": "登记"
      },

      {
        "selectedIconPath": "images/3.png",
        "iconPath": "images/3.png",
        "pagePath": "pages/center/center",
        "text": "排行榜"
      }
    ]
  },

下面是登入界面的跳转路由,单独再拿出来,给自己解释下,方便自己下次用。

              wx.reLaunch({
             url: '/pages/index/index?studentname='+studentname,//这里是成功登录后跳转的页面
             })

url: '/pages/index/index 这个是正常的路由地址

因为我要带账号输入的内容过来,所以要加英文状态下的?,后面的写活的参数。因为不用老师的输入的账号不一样。

那为什么是studentname呢,是因为代码最上面获取输入内容的变量命名的是studentname,所以这里用。

4.跳转后接受

跳转后的页面index.wxml

<text>您好!{{orderId}}老师!</text>

跳转后的页面index.js

// index.js
Page({
onLoad: function (options) {
  console.log(options); // options里面是上级页面传来的参数(教师姓名)
  let id = options.studentname;
  this.setData({
    orderId: id
  });
}
})

把传递过来的studentname赋值给id,然后又setData给orderId,为什么给orderId呢?是因为在index.wxml里面,我的文字显示代码变量写的是orderId。当然这个要可以改。当你把orderId改了后,请不要忘记js里面的orderId也改了。

总结

到此这篇关于微信小程序账号密码登入和传值的文章就介绍到这了,更多相关微信小程序账号密码登入传值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 微信小程序 MD5加密登录密码详解及实例代码

    微信小程序 MD5加密 在小程序中,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件.zepto/jquery 也无法使用,因为zepto/jquery 会使用到window对象和document对象.所以在微信小程序中不能使用jquery.md5.js对密码进行加密.下面我提供一种MD5.js加密实例,本实例先静态演示,后面再到小程序中演示. md5.js程序如下: /* * A JavaScript impl

  • 微信小程序账号密码登入和传值的实现方法

    目录 小程序实现账号密码登入和传值显示 要帮学校做一个简单的阅读值登记系统,-1基础的我只能硬着头皮努力学习了!!实现的效果是这样的: 有一个问题:就是登入成功后会显示无此用户名,不知道什么原因,有看出来麻烦说明下. 文章后面有拿去使用后的注意事项 接下来详细的记录下编写过程,方便自己以后查找. 首先是登入页面的login.wxml <!--pages/login/login.wxml--> <view class="content"> <view cla

  • 微信小程序实现元素渐入渐出动画效果封装方法

    开端 之前一直使用堪称"万能"的jQuery处理用户交互的动画,近日开发微信小程序,微信小程序高度限制的语法和功能使开源函数可谓对其"无能为力". 那没办法,只好自己写一个可以让元素渐入渐出的,可复用的函数了.做到类似jQuery show()的效果 原创文章,允许转载分享.但请转载请一定标明出处,这是起码的尊重 本文章阅读前需要对微信小程序的动画api有所了解 先看效果 可以看到,动画效果十分流畅,高度复用,封装好后只需要三行代码实现动画 解决 1.寻根问底,发现

  • 微信小程序中子页面向父页面传值实例详解

    微信小程序中子页面向父页面传值实例详解 上面一张图是编辑款项页面,下面一张图是点击了编辑款项页面中选择好友的图标后打开的子页面.这个时候点选子页面的某个好友时,需要把好友的名字传递回编辑款项父页面. 采取的方法: 从页面路由栈中直接获取和操作目标Page对象,这种方式,是通过调用小程序的API: getCurrentPages(),来获取当前页面路由栈的信息,这个路由栈中按照页面的路由顺序存放着相应的Page对象,我们可以很容易的获取到上一级页面的完整Page对象,从而使直接调用Page对象的属

  • 微信小程序 配置顶部导航条标题颜色的实现方法

    微信小程序 配置顶部导航条标题颜色的实现方法 关于小程序导航顶部配置都写在.json文件中. { "window":{ "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black", "navigationBarTitleText": "微信接口功能演示", "bac

  • 微信小程序 页面跳转如何实现传值

    微信小程序 页面跳转如何实现传值 (1)页面跳转如何传值(实现跳转到不同页面) 点击页面 WXML:加入自定义属性(data-category="{{categoryTitle}}") <view class="more" catchtap="onMoreTap" data-category="{{categoryTitle}}"> js:在event中取出category值并加到URL中 onMoreTap:fu

  • 微信小程序基于slider组件动态修改标签透明度的方法示例

    本文实例讲述了微信小程序基于slider组件动态修改标签透明度的方法.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 index.wxml <view class="img" style="opacity:{{imgOpacity}}"></view> <slider min="0" max="1" step="0.1" show-value value=&quo

  • 微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】

    本文实例讲述了微信小程序实现动态改变view标签宽度和高度的方法.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 index.wxml文件 <view class="view" style="width:{{view.Width}}px;height:{{view.Height}}px;" >我是view标签,我现在的宽度是{{view.Width}}px,高度是{{view.Height}}px</view> <inpu

  • 微信小程序--获取用户地理位置名称(无须用户授权)的方法

    在本文 微信小程序--获取用户地理位置名称(无须用户授权) 之前需要先看看 微信小程序-获取用户session_key,openid,unionid - 后端为nodejs 代码封装是在上文添加的. 准备 1.在http://lbs.qq.com/网站申请key 2.在微信小程序后台把apis.map.qq.com添加进request合法域名 效果 添加封装 /** * 发起网络请求 * @param {string} url * @param {object} params * @return

  • 微信小程序提取公用函数到util.js及使用方法示例

    本文实例讲述了微信小程序提取公用函数到util.js及使用方法.分享给大家供大家参考,具体如下: 在小程序中,定义了一项工具文件utils,此文件的js旨在本文件之内有效,当其他子页面想调用其中的js方法或者变量时,需要两步骤: 1:在utils被调用的js文件中,面向对象的方式模型输出: module.exports={要调用的函数名称:要调用的函数名称 }; 2:在要调用的js文件中模块化引入utils的js文件 var object=require("utils被调用的js文件地址&quo

  • 微信小程序实现带参数的分享功能(两种方法)

    微信小程序分享功能的实现方法有两种: 第一种 在page.js中实现onShareAppMessage,便可在小程序右上角选择分享该页面 onShareAppMessage: function () { return { title: '弹出分享时显示的分享标题', desc: '分享页面的内容', path: '/page/user?id=123' // 路径,传递参数到指定页面. } } 第二种 自定义按钮实现分享,在page中添加一个带有open-type='share'的button标签

随机推荐