一百二十八:CMS系统之轮播图的编辑和删除功能

编辑

form,继承添加的form

视图

@bp.route(‘/ubanners/‘, methods=[‘POST‘])@login_required@permission_required(CMSPersmission.POSTER)def ubanners():    """ 修改banner """    form = UpdateBannerForm(request.form)    if form.validate():        banner_id = form.banner_id.data        name = form.name.data        image_url = form.image_url.data        link_url = form.link_url.data        priority = form.priority.data        banner = BannerModel.query.get(banner_id)        if banner:            banner.name = name            banner.image_url = image_url            banner.link_url = link_url            banner.priority = priority            db.session.commit()            return restful.success()        else:            return restful.params_error(‘没有这个轮播图‘)    else:        return restful.params_error(form.get_error())

html:将数据渲染到tr标签上,方便js取值

js逻辑

在新增轮播图的逻辑上加一些修改

$(function () {   $(‘#save-banner-btn‘).click(function (event) {       event.preventDefault();       var self = $(this);       var dialog = $(‘#banner-dialog‘);       var nameInput = $(‘input[name="name"]‘);       var imageInput = $(‘input[name="image_url"]‘);       var linkInput = $(‘input[name="link_url"]‘);       var priorityInput = $(‘input[name="priority"]‘);

       var name = nameInput.val();       var image_url = imageInput.val();       var link_url = linkInput.val();       var priority = priorityInput.val();       var submitType = self.attr(‘data-type‘);  // 提交类型,新增还是修改       var bannerId = self.attr(‘data-id‘);  // 数据id

       if(!name || !image_url || !link_url || !priority ){           xtalert.alertInfoToast(‘请输入完整数据‘);           return;       }       // 根据拿到的data-type类型区分url       var url = ‘/cms/abanners/‘;       if(submitType == ‘update‘){           url = ‘/cms/ubanners/‘;       }       ajax.post({           ‘url‘: url,           ‘data‘: {               ‘name‘: name,               ‘image_url‘: image_url,               ‘link_url‘: link_url,               ‘priority‘: priority,               ‘banner_id‘: bannerId           },           ‘success‘: function (data) {               dialog.modal(‘hide‘);  // 隐藏模态框               if(data[‘code‘] == 200){                   // 重新加载当前页面                   window.location.reload();               }else{                   xtalert.alertInfo(data[‘message‘]);               }           },           ‘fail‘: function (error) {                xtalert.alertNetworkError();           }

       });   });});

//编辑轮播图$(function () {    $(‘.edit-banner-btn‘).click(function (event) {        var self = $(this);        var dialog = $(‘#banner-dialog‘);        dialog.modal(‘show‘);  // 点击时显示模态框

        //获取各属性值,即各字段的数据        var tr = self.parent().parent();  //  当前元素的上上级        var name = tr.attr(‘data-name‘);        var image_url = tr.attr(‘data-image‘);        var link_url = tr.attr(‘data-link‘);        var priority = tr.attr(‘data-priority‘);

        //数据回显        var nameInput = dialog.find(‘input[name="name"]‘);        var imageInput = dialog.find(‘input[name="image_url"]‘);        var linkInput = dialog.find(‘input[name="link_url"]‘);        var priorityInput = dialog.find(‘input[name="priority"]‘);        var saveBtn = dialog.find(‘#save-banner-btn‘);        nameInput.val(name);        imageInput.val(image_url);        linkInput.val(link_url);        priorityInput.val(priority);        saveBtn.attr(‘data-type‘, ‘update‘);  // 给保存按钮添加属性data-type=‘update‘        saveBtn.attr(‘data-id‘, tr.attr(‘data-id‘));  // 把tr标签上的data-id加到保存按钮data-id属性上    });});

删除

视图

@bp.route(‘/dbanners/‘, methods=[‘POST‘])@login_required@permission_required(CMSPersmission.POSTER)def dbanners():    """ 删除banner """    banner_id = request.form.get(‘banner_id‘)    if not banner_id:        return restful.params_error(‘请输入轮播图id‘)    banner = BannerModel.query.get(banner_id)    if not banner:        return restful.params_error(‘没有这个轮播图‘)    db.session.delete(banner)    db.session.commit()    return restful.success()

html添加一个class,方便绑定js事件

js

//删除banner$(function () {    $(‘.delete-banner-btn‘).click(function (event) {        var self = $(this);        var tr = self.parent().parent();        var banner_id = tr.attr(‘data-id‘);        var banner_name = tr.attr(‘data-name‘);        xtalert.alertConfirm({            ‘msg‘: ‘确定删除名为:“‘ + banner_name + ‘” 的轮播图?‘,            ‘confirmCallback‘: function () {                ajax.post({                    ‘url‘: ‘/cms/dbanners/‘,                    ‘data‘: {                        ‘banner_id‘: banner_id                    },                    ‘success‘: function (data) {                       if(data[‘code‘] == 200){                           window.location.reload();  // 重新加载当前页面                       }else{                           xtalert.alertInfo(data[‘message‘]);                       }                   },                   ‘fail‘: function (error) {                        xtalert.alertNetworkError();                   }                })            }        })    });});

操作

原文地址:https://www.cnblogs.com/zhongyehai/p/11966189.html

时间: 2024-11-05 11:00:42

一百二十八:CMS系统之轮播图的编辑和删除功能的相关文章

一百三十一:CMS系统之轮播图上传图片功能

将七牛js放到common下 把获取uptoken的接口放到common视图中 把初始化七牛放到banners.js中 //初始化七牛$(function () { qiniujs.setUp({ 'domain': 'http://q1tp5a19s.bkt.clouddn.com/', 'browse_btn': 'upload-btn', //上传图片按钮的id 'uptoken_url': '/common/uptoken/', 'success': function (up, file

一百二十七:CMS系统之添加轮播图前后台逻辑

后台逻辑 模型 from exts import dbfrom datetime import datetime class BannerModel(db.Model): __tablename__ = 'banner' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(255), nullable=False, comment='banner名') image_

小程序实践(二):swiper组件实现轮播图效果

swiper组件类似于Android中的ViewPager,实现类似轮播图的效果,相对于Android的Viewpager,swiper实现起来更加方便,快捷. 效果图: 首先看下swiper支持的属性: ------------------------------------------------------------------------------------   具体实现轮播功能:    一.添加轮播图片素材   在项目根目录下新建一个目录用于存储图片资源,目录名随意       

从零开始,搭建博客系统MVC5+EF6搭建框架(5),博客详情页、留言、轮播图管理、右侧统计博文

一.博客系统进度回顾 上一遍博客介绍到,系统已经实现到了发布以及前台布局展示,接下来就是实现一些,详情页,留言.轮播图管理.右侧博文统计信息实现. 二.博客系统详情页实现 2.1先来看看详情页展示的效果 2.2实现控制器在前台控制器中创建一个Blog的控制器,主要是展示博客分类以及详情页 Action详情页实现: 1 /// <summary> 2 /// 详情页 3 /// </summary> 4 /// <param name="id"><

Flask实战第53天:cms编辑轮播图功能完成

后端逻辑 表单验证, 这里编辑就是和添加的内容一样,所以可以直接继承添加轮播图的表单验证,然后多加一个轮播图的id即可 编辑cmd.forms.py class UpdateBannerForm(AddBannerForm): banner_id = IntegerField(validators=[InputRequired(message='请输入轮播图的id!')]) 视图,编辑cms.views.py ... from .forms import UpdateBannerForm @bp

轮播图的效果实现小米商城和京东商城

案例一: 效果如下:类似小米商城的轮播图 自动切换的:左右的 路径结构: 代码如下: <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style type="text/css">        *{            padd

一百三十二:CMS系统之前端动态获取后台添加的轮播图

先准备几张轮播图 排序顺序改为根据优先级倒序排 前端首页接口 @bp.route('/')def index(): banners = BannerModel.query.order_by(BannerModel.priority.desc()).limit(4) # 只取4条 context = {'banners': banners} return render_template('front/front_index.html', **context) 在首页模板中动态渲染轮播图 {% fo

一百二十五:CMS系统之首页轮播实现

把base模板分为左右两块版心 .main-container{ /*整体版心*/ width: 990px; margin: 0 auto; overflow: hidden;}.lg-container{ /*左侧版心*/ width: 730px; float: left;}.sm-container{ /*右侧版心*/ width: 250px; float: right;} 首页html {% extends 'front/front_base.html' %}{% from "com

【Unity 3D】学习笔记二十八:unity工具类

unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法.比如说:实现时间的time类,获取随机数的Random.Range( )方法等等. 时间类 time类,主要用来获取当前的系统时间. using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void OnGUI() { GUILayout.Label("当前游戏时间:" + Time.t