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


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 相关文章推荐
javascript对talbe进行动态添加、删除、验证实现代码
Mar 29 Javascript
javascript表单验证 - Parsley.js使用和配置
Jan 25 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
javascript实现的网站访问量统计代码
Dec 20 Javascript
prototype框架中美元符号$用法分析
Jan 22 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
Dec 15 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
node-red File读取好保存实例讲解
Sep 11 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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
PHP4.04简明安装
2006/10/09 PHP
php结合飞信 免费天气预报短信
2009/05/07 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
angular.bind使用心得
2015/10/26 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Php多进程实现代码
2018/05/07 Python
django Serializer序列化使用方法详解
2018/10/16 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
基于python实现坦克大战游戏
2020/10/27 Python
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
父亲八十大寿答谢词
2014/01/23 职场文书
感谢信模板大全
2015/01/23 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
golang生成并解析JSON
2022/04/14 Golang
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技