微信小程序云開(kāi)發(fā)之模擬后臺(tái)增刪改查
小程序云開(kāi)發(fā)出來(lái)之后,小程序開(kāi)發(fā)人員也要慢慢的接觸后端對(duì)數(shù)據(jù)的增刪改查了。下面就給大家提供一個(gè)案例吧。
這里我把新增和修改放在了一個(gè)頁(yè)面
顯示頁(yè)面index.wxml
<view wx:if="{{books}}" class='container'> <view class='title'> <text>圖書(shū)列表</text> </view> <view class='label'> <text>書(shū)名</text> <text>作者</text> <text>價(jià)格</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 >暫時(shí)沒(méi)有圖書(shū)!</text> </view> <view class='add'> <button bindtap='goSet'>添加圖書(shū)</button> </view>
index.js
// pages/index/index.js Page({ /** * 頁(yè)面的初始數(shù)據(jù) */ data: { books:[] }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載 */ 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>書(shū)名:</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>價(jià)格:</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({ /** * 頁(yè)面的初始數(shù)據(jù) */ data: { book:[] }, /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載 */ 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]//返回的是一個(gè)數(shù)組,取第一個(gè) }) },fail:err=>{ console.log(err) } }) } }, comfirm:function(e){ const db = wx.cloud.database()//打開(kāi)數(shù)據(jù)庫(kù)連接 let book = e.detail.value if(book.id==""){//id等于空是新增數(shù)據(jù) 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: '修改失敗', }) } }) } })
云開(kāi)發(fā)后臺(tái)數(shù)據(jù),需要手動(dòng)添加books集合:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)獲取準(zhǔn)確的騰訊定位地址功能示例
- 微信小程序?qū)Ш綑诨瑒?dòng)定位功能示例(實(shí)現(xiàn)CSS3的positionsticky效果)
- 微信小程序使用map組件實(shí)現(xiàn)檢索(定位位置)周邊的POI功能示例
- 微信小程序使用map組件實(shí)現(xiàn)獲取定位城市天氣或者指定城市天氣數(shù)據(jù)功能
- 基于騰訊云服務(wù)器部署微信小程序后臺(tái)服務(wù)(Python+Django)
- PHP后臺(tái)實(shí)現(xiàn)微信小程序登錄
- 微信小程序wx.request實(shí)現(xiàn)后臺(tái)數(shù)據(jù)交互功能分析
- 微信小程序后臺(tái)持續(xù)定位功能使用詳解
相關(guān)文章
微信小程序?qū)崿F(xiàn)寫(xiě)入讀取緩存詳解
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)寫(xiě)入緩存與讀取緩存詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持
這篇文章主要介紹了BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持 ,凡是涉及到用戶編輯信息然后保存的頁(yè)面,都涉及到一個(gè)數(shù)據(jù)是否符合要求的檢查,需要客服端和服務(wù)器端的校驗(yàn)的問(wèn)題,本文介紹非常詳細(xì),具有參考價(jià)值,需要的朋友可以參考下2016-06-06JS中call/apply、arguments、undefined/null方法詳解
這篇文章主要介紹了JS中call/apply、arguments、undefined/null方法詳解的相關(guān)資料,需要的朋友可以參考下2016-02-02JS實(shí)現(xiàn)金額轉(zhuǎn)換(將輸入的阿拉伯?dāng)?shù)字)轉(zhuǎn)換成中文的實(shí)現(xiàn)代碼
這篇文章介紹了JS實(shí)現(xiàn)金額轉(zhuǎn)換(將輸入的阿拉伯?dāng)?shù)字)轉(zhuǎn)換成中文的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下,希望對(duì)大家有用2013-09-09js鼠標(biāo)滑過(guò)彈出層的定位IE6bug解決辦法
大家在寫(xiě)div+css的時(shí)候經(jīng)常會(huì)用到彈出層,由于IE6的bug,所以當(dāng)使用多個(gè)標(biāo)簽重復(fù)寫(xiě)彈出層的時(shí)候會(huì)遇到后面的層壓在了彈出層的上面;用Jquery給彈出層的z軸依次增加高度可解決.代碼很簡(jiǎn)單,效果很顯著,需要了解的朋友可以參考下2012-12-12javascript 兼容所有瀏覽器的DOM擴(kuò)展功能
技術(shù)文章寫(xiě)得少,所以有時(shí)候想寫(xiě)點(diǎn)什么卻下不了手,不知道該寫(xiě)什么;往往到了準(zhǔn)備要寫(xiě)的時(shí)候才發(fā)現(xiàn)自己想寫(xiě)的東西其實(shí)很無(wú)聊,甚至覺(jué)得很幼稚,于是又關(guān)掉了編緝器2012-08-08JavaScript中統(tǒng)計(jì)Textarea字?jǐn)?shù)并提示還能輸入的字符
是在文本框中輸入文字的時(shí)候,會(huì)自動(dòng)統(tǒng)計(jì)輸入的字符,并顯示用戶還能輸入的字符,其實(shí)js也可以實(shí)現(xiàn),下面就以示例的方式為大家講解下2014-06-06JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀(transform應(yīng)用)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04