前端啓動行編輯修改數據。
<script>
layui.use('table', function(){
var table = layui.table;
// var laypage = layui.laypage;
// //執行一個laypage實例
// laypage.render({
// elem: 'test1' //注意,這裏的 test1 是 ID,不用加 # 號
// ,count: 50 //數據總數,從服務端得到
// });
table.render({
page: { //支持傳入 laypage 組件的所有參數(某些參數除外,如:jump/elem) - 詳見文檔
layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']//自定義分頁佈局
,limits:[5,10,15]
,first: true //不顯示首頁
,last: true //不顯示尾頁
}
})
//監聽單元格編輯
table.on('edit(test)', function(obj){
var value = obj.value //得到修改後的值
,data = obj.data //得到所在行所有鍵值
,field = obj.field; //得到字段
var formData=new FormData();
formData.append("id",obj.data.Id);
formData.append(obj.field.toString(),obj.value.toString());
var xhr = new XMLHttpRequest();
xhr.open('POST', location.origin+'/user/updateuser');
xhr.onload = function(){
if(JSON.parse(xhr.responseText).code==200){
console.log(xhr.responseText);
layer.msg('[ID: '+ data.Id +'] ' + field + ' 字段更改爲:'+ value);
}else
{
console.log(xhr.responseText);
layer.msg(xhr.responseText);
}
};
xhr.send(formData);
});
//頭工具欄事件
table.on('toolbar(test)', function(obj){
var checkStatus = table.checkStatus(obj.config.id);
switch(obj.event){
case 'getCheckData':
var data = checkStatus.data;
layer.alert(JSON.stringify(data));
break;
case 'getCheckLength':
var data = checkStatus.data;
layer.msg('選中了:'+ data.length + ' 個');
break;
case 'isAll':
layer.msg(checkStatus.isAll ? '全選': '未全選');
break;
};
});
});
</script>
添加方法修改用戶信息:
/* update user */
func (m UserC) Updateuser(g *gin.Context) {
fmt.Println("update user.................")
rsp := new(Rsp)
//var err1 *gvalid.Error
////1. 單參數校驗
//err1 = gvalid.Check(g.PostForm("gender"), "integer|between:0,2", nil)
//if err1 != nil {
// rsp.Msg = err1.String()
// rsp.Code = 201
// g.JSON(http.StatusOK, rsp)
// return
//}
id := g.PostForm("id")
oldId, err := primitive.ObjectIDFromHex(id)
newpassword := g.PostForm("password")
newgender, err := strconv.Atoi(g.PostForm("gender"))
user := new(models.User)
user.Id = oldId
oldInfo := m.Mgo.Collection(db.User).FindOne(context.Background(), bson.M{"_id": oldId})
if oldInfo != nil {
oldInfo.Decode(user)
}
if g.PostForm("username") != "" {
user.Username = g.PostForm("username")
}
if newpassword != "" {
user.Password = newpassword
}
if newgender != 0 {
user.Gender = newgender
}
if g.PostForm("address") != "" {
user.Address = g.PostForm("address")
}
//info, err := mgo.Collection(db.User).UpdateOne(context.Background(), bson.M{"_id": bsonx.ObjectID(oldId)},
// bson.M{"$set": bson.M{"username": newUsername}})
//
info := m.Mgo.Collection(db.User).FindOneAndReplace(context.Background(), bson.M{"_id": oldId},
user)
if info.Err() != nil {
rsp.Msg = info.Err().Error()
rsp.Code = 201
g.JSON(http.StatusOK, rsp)
return
}
fmt.Println(info)
if err == nil {
//fmt.Println(info.MatchedCount)
}
rsp.Msg = "success"
rsp.Code = 200
g.JSON(http.StatusOK, rsp)
return
}