小程序云开发数据库【‘增’、‘删’、‘改’、‘查’】

页面效果图

wxml代码

<view>
    <text>姓名:</text>
    <input class="myInput" type="text" id="myName" bindinput="inputText"/>
    <text>电话:</text>
    <input class="myInput" type="number" id="myPhone" bindinput="inputText" placeholder="11位长度" maxlength="11"/>
    <text>备注:</text>
    <input class="myInput" type="text" id="myRemark" bindinput="inputText"/>
</view>
<button bindtap="tianjia">添加</button>
<button bindtap="chaxun">查询</button>
<view class="d" wx:for="{{list}}">
    <view class="d-a">姓名:{{item.name}}</view>
    <view class="d-b">电话:{{item.phone}}</view>
    <view class="d-a">备注:{{item.remark}}</view>
</view>
<button bindtap="whereChaxun">条件查询</button>
<button bindtap="shanchu">删除</button>
<text>查询条件:</text>
    <input class="myInput" type="text" id="where" bindinput="inputText" placeholder="姓名/电话/备注"/>
<view class="d" wx:for="{{wherelist}}">
    <view class="d-a">姓名:{{item.name}}</view>
    <view class="d-b">电话:{{item.phone}}</view>
    <view class="d-a">备注:{{item.remark}}</view>
</view>
<button bindtap="upDate">修改</button>
<input class="myInput" type="text" id="myName" bindinput="inputText" placeholder="名字修改为"/>
<input class="myInput" type="number" id="myPhone" bindinput="inputText" placeholder="号码修改为" maxlength="11"/>
<input class="myInput" type="text" id="myRemark" bindinput="inputText" placeholder="备注修改为" />

 wxss代码

/* pages/test/test.wxss */
.myInput{
    border: 1px solid #2b4b6b;
    margin-bottom: 10rpx;
}
.d{
    background-color: darkseagreen;
    border: 1rpx solid #efefef;
    border-radius: 10%;
    margin-bottom: 15rpx;
}
.d-a{
    border: 1px solid #2b4b6b;
    background-color: darkgoldenrod;
}
.d-b{
    border: 1px solid #2b4b6b;
    background-color: rgb(110, 216, 216);
}

js代码在最下面,希望对大家有用

一、“增”添加数据

把输入的数据通过 wx.cloud.database().collection('test').add({...})和输入框函数绑定的数据,上传到云数据库中添加函数的js代码

data: {
        
         list:[],
        wherelist:[],
        Id:'',
        show:'',
        myName: '',
        myPhone: '',
        myRemark:'',
        where:'',
       
    },
 tianjia:function(e)
    {
        let myName =this.data.myName;
        let myPhone =this.data.myPhone;
        let myRemark=this.data.myRemark;
        if(myName=='' || myPhone==''|| myRemark==''){
         console.log("必填项不能为空!");
          return ;
       }
        wx.cloud.database().collection('test')
        .add({
            data:{name:myName, phone:myPhone, remark:myRemark},
            success:function(){console.log("添加成功");},
            fail:function(err){console.error("添加失败["+err+"]");
            console.log("添加失败");}         
        })
    },

输入框绑定函数js代码

   inputText:function(e) {
        console.clear();
        let id = e.target.id;
        let text = e.detail.value;
        this.setData({[id]:text});
        console.log(id + "输入中。。。" + text);
      },

看云数据库已经把这个数据传到云数据库了

 二.“查”询操作

利用 wx.cloud.database().collection('test') .get({}),把数据拿回来

 js代码

  
 chaxun:function(e){
        let that = this;
        wx.cloud.database().collection('test')
        .get({
            success:function(res){
            console.log("数据回调成功");
            console.log(res.data);
            that.setData({list:res.data});
            console.log("查询成功");
            },
            fail:function(err){ console.log("查询失败")}
        })
    },

点击查询按钮,看效果图,前面的三条数据是之前加进去的

 

 三.条件查询

可以输入姓名、电话、备注,任何一个条件都可以wx.cloud.database().collection('test') .where({})

js代码如下

   whereChaxun:function(e){
        const _ = wx.cloud.database().command;
        let _wherelist=[];//创建一个空的数组
        let page = this;
        page.setData({wherelist:_wherelist});//清空原来的数据
        let where=this.data.where;    //绑定输入框的查询条件
        wx.cloud.database().collection('test')  //电话查询、名字查询、备注查询
        .where(_.or([    //多个条件查询?可能提示什么索引组合什么的,知识有限不知道怎么解决
            {phone:where},
            {name:where},
            {remark:where},
         ] ))
        .get({
            success:function(res){
            console.log("电话数据回调成功");
            console.log(res.data);
            let id=res.data[0]._id;
            page.setData({Id:id,wherelist:res.data});//这个id值给回到页面,等一下删除和修改要用到id
            console.log("查询成功");
            },fail:function(err){ console.log("查询失败")}           
        });
    },

效果图

输入电话查询

 

四、“删”除

通过第三个条件查询拿到的数据的id ,再使用动态绑定查询到的数据的id进行删除wx.cloud.database().collection("test").doc(id).remove({})

js代码

  shanchu:function(e){
        let id=this.data.Id;     
        wx.cloud.database().collection("test").doc(id).remove({
                success: function(res) { 
               console.log("删除成功");
                 }
              })  
},

效果,先条件查询出一个数据,然后点一下删除按键就可以删除了

五、修“改”

也是通过第三个条件查询出的一个记录,然后再下面的输入框中输入你想要修改成的数据,这里有个小bug,就是你只修改一个电话或者是备注的话,其他两个没有填东西,也会将空白把原来的数据填充覆盖回去 wx.cloud.database().collection("test").doc(id).update({ data:{..}})

js代码如下

  upDate:function(e){
        let that =this;
        let myName =this.data.myName;
        let myPhone =this.data.myPhone;
        let myRemark=this.data.myRemark;
        let id=this.data.Id;
        let db=wx.cloud.database().collection("test").doc(id);
        db.update({
            data:{
                name:myName,
                phone:myPhone,
                remark:myRemark,
            },
            success:function(res){
               console.log("修改成功");
            }
        })

    },

效果图,这里可以看到电话没有填,却将空白覆盖掉原来的数据

到最后感谢大家能看到这里,这两天来就为了这几个功能,可是到处查找资料、实践,还是有点小毛病,不过我想要的功能都在这里了,下面是整个js的代码,上面部分分开的代码段可能会出现小问题

// pages/test/test.js

Page({
   
    data: {
        list:[],
        wherelist:[],
        Id:'',
        show:'',
        myName: '',
        myPhone: '',
        myRemark:'',
        where:'',
    },
    tianjia:function(e)
    {
        let myName =this.data.myName;
        let myPhone =this.data.myPhone;
        let myRemark=this.data.myRemark;
        if(myName=='' || myPhone==''|| myRemark==''){
          alert("必填项不能为空!");
          return ;
        }
        wx.cloud.database().collection('test')
        .add({
            data:{name:myName, phone:myPhone, remark:myRemark},
            success:function(){toast("添加成功");},
            fail:function(err){console.error("添加失败["+err+"]");
            toast("添加失败");}         
        })
    },
    chaxun:function(e){
        let that = this;
        let _list=[];
        this.setData({list:_list});
        wx.cloud.database().collection('test')
        .get({
            success:function(res){
            console.log("数据回调成功");
            console.log(res.data);
            console.log(res.data[0]._id);
            that.setData({list:res.data});
            toast("查询成功");
            },
            fail:function(err){ alert("查询失败")}
        })
    },
    whereChaxun:function(e){
        const _ = wx.cloud.database().command;
        let _wherelist=[];//创建一个空的数组
        let page = this;
        page.setData({wherelist:_wherelist});//清空原来的数据
        let where=this.data.where;    //绑定输入框的查询条件
        wx.cloud.database().collection('test')  //电话查询、名字查询、备注查询
        .where(_.or([    //多个条件查询?可能提示什么索引组合什么的,知识有限不知道怎么解决
            {phone:where},
            {name:where},
            {remark:where},
         ] ))
        .get({
            success:function(res){
            console.log("电话数据回调成功");
            console.log(res.data);
            let id=res.data[0]._id;
            page.setData({Id:id,wherelist:res.data});
            toast("查询成功");
            },fail:function(err){ alert("查询失败")}           
        });
       
    },
    shanchu:function(e){
        let id=this.data.Id;
        let db=wx.cloud.database().collection("test").doc(id);
        console.log(id);
        wx.showModal({//弹框
            title: '提示',
            content: "是否删除",
            success: function (res) {
              if (res.confirm) {//点确定之后
                  console.log("确定")  
                  db.remove({
                      success: function(res) { 
                          alert("删除成功"); }
              })
            }else if (res.cancel)  { //点取消之后
                  console.log("取消"),
                  alert("删除失败") ; }
}})
},
    upDate:function(e){
        let that =this;
        let myName =this.data.myName;
        let myPhone =this.data.myPhone;
        let myRemark=this.data.myRemark;
        let id=this.data.Id;
        let db=wx.cloud.database().collection("test").doc(id);
        db.update({
            data:{
                name:myName,
                phone:myPhone,
                remark:myRemark,
            },
            success:function(res){
                toast("修改成功");
            }
        })

    },

    inputText:function(e) {
        console.clear();
        let id = e.target.id;
        let text = e.detail.value;
        this.setData({[id]:text});
        console.log(id + "输入中。。。" + text);
      },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {},
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {},
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {},
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {},
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () { },
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () { },
    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {},
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {}
});
function toast(message) {
    wx.showToast({
      title: message,
      icon: 'none',
      duration: 1000
    });
  };
   function alert(message){
    wx.showModal({
      title:'温馨提示',
      content: message,
      showCancel:false
    });
  };

下一步“战”云储存的图片---上传与下载 ---共勉!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三目条件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值