页面效果图
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
});
};
下一步“战”云储存的图片---上传与下载 ---共勉!!!