请稍等 ...
×

采纳答案成功!

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

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

图片描述

我这里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
$(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下载
官方微信