请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我这里跳不到视频所说的修改店铺信息里

图片描述

我这里getshopbyId调试可以一直走
图片描述

可是在js没有返回信息
图片描述

正在回答 回答被采纳积分+3

插入代码

8回答

提问者 qq_蓝骏毅_04076633 2020-05-18 14:19:40

我这里用调试模式启动后可以显示到修改后页面去,不明白为啥之前一直调不到过去,我也不太清楚怎么跳过去的,而且第二次重新用调试模式启动后再调试那就不成功

//img1.sycdn.imooc.com//szimg/5ec228f809c8e1dd14260870.jpg

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    如果又恢复了正常,又能跳转,那么就是有可能你的页面缓存有问题的,所以每次修改js代码并启动后,记得清空浏览器缓存。跳转的原因是你在店铺管理页面点击编辑店铺才能跳转到shopoperation,而由于一开始你已经选择了某个店铺并将店铺信息设置到了session里面,或者将店铺的id设置到了编辑店铺的控件里面,所以打开shopoperation.html的时候会尝试从session里面获取到店铺信息,然后返回给前端,前端看到是有shopId的,就认为是编辑,就会让shopoperation.html作为编辑页面存在,这个视频里面也说得比较清楚,可以仔细看看
    回复 有任何疑惑可以回复我~ 2020-05-19 00:48:06
  • 提问者 qq_蓝骏毅_04076633 回复 翔仔 #2
    可是我不明白第二次用调试模式启动后不成功
    回复 有任何疑惑可以回复我~ 2020-05-19 13:48:09
  • 翔仔 回复 提问者 qq_蓝骏毅_04076633 #3
    。。。。这个只能调试一下,我这边是没有这样的问题的。。
    回复 有任何疑惑可以回复我~ 2020-05-19 20:51:23
提问者 qq_蓝骏毅_04076633 2020-05-17 18:13:03

https://img1.sycdn.imooc.com//szimg/5ec10dfd09d596ae08290732.jpg

我已经很明确告诉问题所在了

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    同学有上下文,有充足的信息,但是我这边没有,所以感觉并没有,我知道同学这里拿不到数据,但是根据你前面提供的截图,我这边没法确定你真的拿不到信息,因为程序根本就没有执行到此处,现在执行到此处了,同学也没将data.shop的值打印出来,所以我还是没法确认你有没有拿到数据,后台看起来是拿到了。所以在提问的时候,还是需要同学提供一个完整的信息,我这边也能精准帮你定位问题,主要就是没有太多有效的信息,其实针对这个问题,主要先确保后端能返回了带有shop 这个key的modelMap,并且是有值的,其次,数据能够返回前端, 前端已经有响应接收到Data了,然后就才能看看data有没有值,这里如果还没执行到从data获取数据的断点,就没法确定是否能获取到值,没到断点你移动鼠标过去也是取不到值的,所以,还是希望高效简单地提供信息,其他同学基本一两次回复就能解决问题了,所以还是希望你能提高相关的表达和沟通的能力,对你以后也是很有帮助的。
    回复 有任何疑惑可以回复我~ 2020-05-18 01:52:07
  • 提问者 qq_蓝骏毅_04076633 回复 翔仔 #2
    哈,我现在都不知道哪里问题,看也重新看过,就是发现不了问题呀。你也没有准确告诉我哪里有问题
    回复 有任何疑惑可以回复我~ 2020-05-18 13:54:08
  • 翔仔 回复 提问者 qq_蓝骏毅_04076633 #3
    我是需要你准确告诉我究竟有没有获取到值,并提供相关的证明,你说var shop = data.shop 这个没有值,所以我让你提供这个没有值的证据,证据主要在于程序需要执行到var shop = data.shop这个地方,然后鼠标移动到上面,或者打印当时的data.shop的值是没有的才可以,主要让你提供这个证据,我才能进行下一步判断,但是如果Shop都取到值的话,没有跳转就得看看后续的原因了。我如果能准确告诉你问题我早告诉了,但是因为是信息不足我才继续问你的
    回复 有任何疑惑可以回复我~ 2020-05-19 00:44:38
提问者 qq_蓝骏毅_04076633 2020-05-17 18:09:00

首先按着f10到$.getJSON(shopInfoUrl, function(data){到这里是显示信息,在var shop = data.shop打着断点到Controller层去https://img1.sycdn.imooc.com//szimg/5ec10cf409acbd2708130574.jpg

是可以一直走下去,到js就有异常了https://img1.sycdn.imooc.com//szimg/5ec10c4909c015d200000000.jpg

0 回复 有任何疑惑可以回复我~
提问者 qq_蓝骏毅_04076633 2020-05-13 22:49:52

//img1.sycdn.imooc.com/szimg/5ebc0874093541b808280407.jpg

到js//img1.sycdn.imooc.com/szimg/5ebc08c3090b597011120441.jpg

传不去到var shop = data.shop;

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    Shop能取到对不,我感觉是你设置断点不对吧?你第一次调试,是到后台了,到后台之后,你可以把js页面的第一个断点去了,这个时候只要在Eclipsef8跳过后端代码的执行,就会来到js也就是chrome的第二断点,然后一步步调试,是能获取到值的呀。如果不会调试,可以返回前面看看前后端联调细节这一章,我记得是4-13
    回复 有任何疑惑可以回复我~ 2020-05-14 18:36:00
  • 提问者 qq_蓝骏毅_04076633 回复 翔仔 #2
    返回到js页面去var shop = data.shop;没有信息,
    回复 有任何疑惑可以回复我~ 2020-05-15 13:42:52
  • 翔仔 回复 提问者 qq_蓝骏毅_04076633 #3
    为了使得问题得到高效解决,辛苦同学提供一下充足的信息,你看看chrome里面,断点执行到var shop = data.shop; 然后鼠标移动到data.shop上面,看看当时是什么值,提供一下截图谢谢
    回复 有任何疑惑可以回复我~ 2020-05-17 00:15:22
提问者 qq_蓝骏毅_04076633 2020-05-12 23:25:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
$(function() {
    // 从URL里获取shopId参数的值
    var shopId = getQueryString('shopId');
    // 由于店铺注册和编辑使用的是同一个页面,
    // 该标识符用来标明本次是添加还是编辑操作
    var isEdit = shopId ? true false;
    // 用于店铺注册时候的店铺类别以及区域列表的初始化的URL
    var initUrl = '/o2o/shopadmin/getshopinitinfo';
    // 注册店铺的URL
    var registerShopUrl = '/o2o/shopadmin/registershop';
    // 编辑店铺前需要获取店铺信息,这里为获取当前店铺信息的URL
    var shopInfoUrl = "/o2o/shopadmin/getshopbyid?shopId=" + shopId;
    // 编辑店铺信息的URL
    var editShopUrl = '/o2o/shopadmin/modifyshop';
    // 判断是编辑操作还是注册操作
    if (!isEdit) {
        getShopInitInfo();
    else {
        getShopInfo(shopId);
    }
    // 通过店铺Id获取店铺信息
    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);
                // 给店铺类别选定原先的店铺类别值
                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 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);
            }
        });
    }
    // 提交按钮的事件响应,分别对店铺注册和编辑操作做不同响应
    $('#submit').click(function() {
        // 创建shop对象
        var shop = {};
        if (isEdit) {
            // 若属于编辑,则给shopId赋值
            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];
        // 生成表单对象,用于接收参数并传递给后台
        var formData = new FormData();
        // 添加图片流进表单对象里
        formData.append('shopImg', shopImg);
        // 将shop json对象转成字符流保存至表单对象key为shopStr的的键值对里
        formData.append('shopStr', JSON.stringify(shop));
        // 获取表单里输入的验证码
        var verifyCodeActual = $('#j_captcha').val();
        if (!verifyCodeActual) {
            $.toast('请输入验证码!');
            return;
        }
        formData.append('verifyCodeActual', verifyCodeActual);
        // 将数据提交至后台处理相关操作
        $.ajax({
            url : (isEdit ? editShopUrl : registerShopUrl),
            type : 'POST',
            data : formData,
            contentType : false,
            processData : false,
            cache : false,
            success : function(data) {
                if (data.success) {
                    $.toast('提交成功!');
                    if (!isEdit) {
                        // 若为注册操作,成功后返回店铺列表页
                        window.location.href = "/o2o/shopadmin/shoplist";
                    }
                else {
                    $.toast('提交失败!' + data.errMsg);
                }
                // 点击验证码图片的时候,注册码会改变
                $('#captcha_img').click();
            }
        });
    });
 
})

https://img1.sycdn.imooc.com//szimg/5ebabfa00984880107580425.jpg

是js文件导致吗

0 回复 有任何疑惑可以回复我~
提问者 qq_蓝骏毅_04076633 2020-05-08 20:21:55

//img1.sycdn.imooc.com//szimg/5eb54eb009dc1aaa05740390.jpg

https://img1.sycdn.imooc.com/szimg/5ebac4960956b8e412850743.jpg


//img1.sycdn.imooc.com//szimg/5eb5515908e893a716000759.jpg

不到var shop = data.shop;

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    后端能获取到店铺信息了没,我看传入了shopid18,然后看看前端Data这块获取到没 一步步调试一下
    回复 有任何疑惑可以回复我~ 2020-05-08 21:26:18
  • 提问者 qq_蓝骏毅_04076633 回复 翔仔 #2
    var shop = data.shop;都无返回后台,我都看过一遍也没发现什么问题
    回复 有任何疑惑可以回复我~ 2020-05-12 23:06:32
  • 翔仔 回复 提问者 qq_蓝骏毅_04076633 #3
    是说data.shop == undifiined?看看后台返回的啥?感觉没往modelmap塞入shop?
    回复 有任何疑惑可以回复我~ 2020-05-13 21:02:19
提问者 qq_蓝骏毅_04076633 2020-04-21 15:18:53

shopid为1


0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    截图一下?前端,后端,看看有没有获取你的shopId为1
    回复 有任何疑惑可以回复我~ 2020-04-22 01:54:43
翔仔 2020-04-21 11:30:19

看看shopId取到没,前端和后端都看看

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号