zoukankan      html  css  js  c++  java
  • shop--7.店铺编辑和列表--更新店铺的信息 前端实现 js

    连接上面的shop--6.店铺注册--js实现

    在请求的url上输入的值,在js中通过正则表达式的匹配规则来获取

    方法commons.js中的

    /**
     * 获取前端url中的name的id值
     * @param name
     * @returns {*}
     */
    function getQueryString(name){
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if(r != null){
            return decodeURIComponent(r[2]);
        }
        return '';
    }
    

      

    js代码中调用

    //通过该方法获取是否传了shopId  如果传了shopId,则是对shop进行更新,否则就是进行注册
        var shopId=getQueryString('shopId');
        var isEdit=shopId ? true : false;
    
        var shopInfoUrl='/shopadmin/getshopbyid?shopId=' + shopId;
        var editShopUrl='/shopdamin/modifyshop';
    

      

    通过isEdit来判断是修改店铺信息还是注册店铺,来调用不同的方法

        if(!isEdit){
            getShopInitInfo();
        } else{
            getShopInfo(shopId);
        }
    

      

    然后通过getShopInfo方法获取店铺的信息(为后面修改店铺信息做准备)

    //通过传入的shopId,查询shop的信息,然后获取到js页面中,为后面修改shop信息做准备
        function getShopInfo(shopId){
            $.getJSON(shopInfoUrl, function(data){
                if(data.success){
                    var shop = data.shop;
                    $('#shop_name').val(shop.shopName);
                    $('#shop_addr').val(shop.shopAddr);
                    $('#shop_phone').val(shop.phone);
                    $('#shop_desc').val(shop.shopDesc);
                    //将shopCategory的信息以option的形式保存,然后赋值到下面的shop_category,并且它的attr是disabled的(不可选择的)
                    //area是以下拉列表的形式保存,area的attr默认选择的是现在的店铺区域信息
                    var shopCategory = '<option data-id="'
                        + shop.shopCategory.shopCategoryId + '"selected>'
                        + shop.shopCategory.shopCategoryName + '</option>';
                    var tempAreaHtml = '';
                    data.areaList.map(function(item, index){
                        tempAreaHtml += '<option data-id=""' + item.areaId + '"">'
                            + item.areaName + '</option>';
                    });
                    $('#shop_category').html(shopCategory);
                    $('#shop_category').attr('disabled', 'disabled');
                    $('#area').html(tempAreaHtml);
              $("#area option[data-id='" + shop.area.areaId + "']").attr("selected", "selected");
    } }); }

      

    总体的

    $(function(){
        //通过该方法获取是否传了shopId  如果传了shopId,则是对shop进行更新,否则就是进行注册
        var shopId=getQueryString('shopId');
        var isEdit=shopId ? true : false;
    
    
        var initUrl='/shopadmin/getshopinitinfo';
        var registerShopUrl='/shopadmin/registershop';
    
        var shopInfoUrl='/shopadmin/getshopbyid?shopId=' + shopId;
        var editShopUrl='/shopadmin/modifyshop';
        //通过isEdit来判断是修改店铺信息还是注册店铺,来调用不同的方法
        if(!isEdit){
            getShopInitInfo();
        } else{
            getShopInfo(shopId);
        }
    
        /*此方法是获取店铺分类和区域信息,进行前端的店铺分类和所属区域的下拉菜单的初始化*/
        function getShopInitInfo() {
            $.getJSON(initUrl, function (data) {
                if (data.success) {
                    var tempHtml = '';
                    var tempAreaHtml = '';
                    data.shopCategoryList.map(function (item, index) {
                        tempHtml += '<option data-id="' + item.shopCategoryId + '">' + item.shopCategoryName + '</option>';
                    });
                    data.areaList.map(function (item, index) {
                        tempAreaHtml += '<option data-id="' + item.areaId + '">' + item.areaName + '</option>';
                    });
                    $('#shop_category').html(tempHtml);
                    $('#area').html(tempAreaHtml);
                }
            });
        }
    
    
        //通过传入的shopId,查询shop的信息,然后获取到js页面中,为后面修改shop信息做准备
        function getShopInfo(shopId){
            $.getJSON(shopInfoUrl, function(data){
                if(data.success){
                    var shop = data.shop;
                    $('#shop_name').val(shop.shopName);
                    $('#shop_addr').val(shop.shopAddr);
                    $('#shop_phone').val(shop.phone);
                    $('#shop_desc').val(shop.shopDesc);
                    //将shopCategory的信息以option的形式保存,然后赋值到下面的shop_category,并且它的attr是disabled的(不可选择的)
                    //area是以下拉列表的形式保存,area的attr默认选择的是现在的店铺区域信息
                    var shopCategory = '<option data-id="'
                        + shop.shopCategory.shopCategoryId + '"selected>'
                        + shop.shopCategory.shopCategoryName + '</option>';
                    var tempAreaHtml = '';
                    data.areaList.map(function(item, index){
                        tempAreaHtml += '<option data-id="' + item.areaId + '">'
                            + item.areaName + '</option>';
                    });
                    $('#shop_category').html(shopCategory);
                    $('#shop_category').attr('disabled', 'disabled');
                    $('#area').html(tempAreaHtml);
                    $("#area option[data-id='" + shop.area.areaId + "']").attr("selected", "selected");
                }
            });
        }
    
        //提交按钮,将店铺信息提交到后台进行处理 url根据isEdit来分情况选择
        $('#submit').click(function(){
            var shop = {};
            if(isEdit){
                shop.shopId = shopId;
            }
            shop.shopName = $('#shop_name').val();
            shop.shopAddr = $('#shop_addr').val();
            shop.phone = $('#shop_phone').val();
            shop.shopDesc = $('#shop_desc').val();
    
            /*使用的下拉菜单来进行选择,获取值的方法*/
            shop.shopCategory = {
                shopCategoryId : $('#shop_category').find('option').not(function(){
                    return !this.selected;
                }).data('id')
            };
            shop.area = {
                areaId : $('#area').find('option').not(function(){
                    return !this.selected;
                }).data('id')
            };
    
            /*获取的是上传图片的输入流*/
            var shopImg = $('#shop_img')[0].files[0];
            //在ajax中传递的参数
            var formData = new FormData();
            //参数的内容,分别是上面的shop和shop图片
            formData.append('shopImg', shopImg);
            formData.append('shopStr', JSON.stringify(shop));
            var verifyCodeActual = $('#j_kaptcha').val();
            if(!verifyCodeActual){
                $.toast('请输入验证码!');
                return;
            }
            formData.append('verifyCodeActual', verifyCodeActual);
            /*使用ajax提交到后台*/
            $.ajax({
                url:(isEdit?editShopUrl:registerShopUrl),
                type:'POST',
                data:formData,
                contentType:false,
                processData:false,
                cache:false,
                success:function(data){
                    if(data.success){
                        $.toast('提交成功!');
                    } else{
                        $.toast('提交失败!' + data.errMsg);
                    }
                    /*更换验证码*/
                    $('#kaptcha_img').click();
                }
            });
        });
    
    });
    

      

  • 相关阅读:
    c# proto文件导入报错 File not found. Import "common.proto" was not found or had errors.
    拓端tecdat|Python用稀疏、高斯随机投影和主成分分析PCA对MNIST手写数字数据进行降维可视化
    拓端tecdat|上海无印良品地理空间分布特征与选址策略可视化研究
    拓端tecdat|Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化
    拓端tecdat|R语言分布滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模应用
    拓端tecdat|R语言用AR,MA,ARIMA 模型进行时间序列预测
    拓端tecdat|R语言广义二次跳跃、非线性跳跃扩散过程转移函数密度的估计及其应用
    拓端tecdat|Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
    拓端tecdat|基于机器学习的印度肝脏病诊断分析
    拓端tecdat|R语言Metropolis Hastings采样和贝叶斯泊松回归Poisson模型
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/8892274.html
Copyright © 2011-2022 走看看