微信小程序云开发之模拟后台增删改查


Posted in Javascript onMay 16, 2019

小程序云开发出来之后,小程序开发人员也要慢慢的接触后端对数据的增删改查了。下面就给大家提供一个案例吧。

微信小程序云开发之模拟后台增删改查

这里我把新增和修改放在了一个页面

  微信小程序云开发之模拟后台增删改查  微信小程序云开发之模拟后台增删改查

显示页面index.wxml

<view wx:if="{{books}}" class='container'>
    <view class='title'>
     <text>图书列表</text>
    </view>
    <view class='label'>
     <text>书名</text>
     <text>作者</text>
     <text>价格</text>
     <text>操作</text>
    </view>
   <block wx:for="{{books}}" wx:key="">
      <view class='content'>
       <text>{{item.name}}</text>
       <text>{{item.author}}</text>
       <text>{{item.price}}</text>
       <button class='del' data-id='{{item._id}}' bindtap='onDel'>删除</button>
       <button class='update' data-id='{{item._id}}' bindtap='onUpdate'>修改</button>
     </view>
   </block>
</view>
<view wx:else="{{books}}" class='none'>
   <text >暂时没有图书!</text>
</view>
<view class='add'>
  <button bindtap='goSet'>添加图书</button>
</view>

index.js

// pages/index/index.js
Page({
 
 /**
  * 页面的初始数据
  */
 data: {
   books:[] 
 },
 
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  const db = wx.cloud.database()
  db.collection("books").get({
   success:res=>{
    this.setData({
     books:res.data
    })
   },fail:err=>{
    wx.showToast({
     icon:"none",
     title: '查询记录失败',
    })
   }
  })
 },
  goSet:function(){
  wx.navigateTo({
   url: '../set/set',
  })
 
 }, onDel:function(e){
   let id = e.currentTarget.dataset.id
   const db = wx.cloud.database();
   db.collection("books").doc(id).remove({
    success:res=>{
     wx.showToast({
      title: '删除成功',
     })
     this.onLoad()//删除成功重新加载
    },fail:err=>{
     wx.showToast({
      title: '删除失败',
     })
    }
   })
   console.log(id)
 },onUpdate:function(e){
   let id = e.currentTarget.dataset.id
   wx.navigateTo({
    url: '../set/set?id='+id,
   })
 }
})

添加和修改共用set.wxml

<!--pages/set/set.wxml-->
<view class='container'>
   <form bindsubmit='comfirm' >
    <view class='input-container'>
      <label>书名:</label>
      <input style='display:none' data-value='{{id}}' name="id" value='{{book._id}}'></input>
      <input data-value='{{name}}' name="name" value='{{book.name}}'></input>
    </view>
    <view class='input-container'>
      <label>作者:</label>
      <input data-value='{{author}}' name="author" value='{{book.author}}'></input>
    </view>
    <view class='input-container'>
      <label>价格:</label>
      <input data-value='{{price}}'  name ="price" value='{{book.price}}'></input>
    </view>
    <view class='comfirm'>
      <button  form-type='submit'>保存</button>
   </view>
  </form>
</view>

set.js

// pages/set/set.js
Page({
 
 /**
  * 页面的初始数据
  */
 data: {
   book:[]
 },
 
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  if(options.id){
   const db = wx.cloud.database();
   db.collection("books").where({
    _id:options.id
   }).get({
    success:res=>{
     this.setData({
      book:res.data[0]//返回的是一个数组,取第一个
     })
    },fail:err=>{
     console.log(err)
    }
   })
  }
 },
 comfirm:function(e){
  const db = wx.cloud.database()//打开数据库连接
  let book = e.detail.value
  if(book.id==""){//id等于空是新增数据
   this.add(db,book) //新增记录
  }else{
   this.update(db,book) //修改记录
  }
 }, add: function (db, book) {
   db.collection("books").add({
    data: {
     name: book.name,
     author: book.author,
     price: parseFloat(book.price)
    }, success: res => {
     wx.showToast({
      title: '新增记录成功',
     })
     wx.navigateTo({
      url: '../index/index',
     })
    }, fail: err => {
     wx.showToast({
      title: '新增失败',
     })
    }
   })
    
 }, update: function (db, book) {
  db.collection("books").doc(book.id).update({
   data: {
    name: book.name,
    author: book.author,
    price: parseFloat(book.price)
   }, success: res => {
    wx.showToast({
     title: '修改记录成功',
    })
    wx.navigateTo({
     url: '../index/index',
    })
   }, fail: err => {
    wx.showToast({
     title: '修改失败',
    })
   }
  })
 } 
 
})

云开发后台数据,需要手动添加books集合:

微信小程序云开发之模拟后台增删改查

wechat

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
『jQuery』取指定url格式及分割函数应用
Apr 22 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
js字符串操作总结(必看篇)
Nov 22 Javascript
bootstrap datetimepicker日期插件使用方法
Jan 13 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
JS验证码实现代码
Sep 14 Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 Javascript
layer父页获取弹出层输入框里面的值方法
Sep 02 Javascript
微信小程序页面渲染实现方法
Nov 06 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 Javascript
微信小程序云开发之新手环境配置
May 16 #Javascript
vue项目中使用scss的方法步骤
May 16 #Javascript
微信小程序云开发使用方法新手初体验
May 16 #Javascript
angular多语言配置详解
May 16 #Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 #Javascript
Django模板继承 extend标签实例代码详解
May 16 #Javascript
vue视图不更新情况详解
May 16 #Javascript
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Python处理中文标点符号大集合
2018/05/14 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
素食餐饮项目创业计划书
2014/02/02 职场文书
初中同学聚会感言
2014/02/11 职场文书
大学生暑期实践感言
2014/02/26 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
SQL Server中搜索特定的对象
2022/05/25 SQL Server