Jquery Ajax 数据保存至数据库的问题,急求高手赐教!!不好意思,新手分不多
<script type="text/javascript">
$(document).ready(function () {
$.baseball({
accepter: "#lefts,#centers,#rights",
target: ".baseball",
handle: ".basebat"
})
//页面加载读取数据库中保存的布局数据
var hei = $(window).height();
var wid = $(window).width();
$("#LoadDiv").css({ left: wid / 2 ,top:hei/2}).hide();
// $("#LoadDiv").css({ top: hei / 2 });
// $("#LoadDiv").hide();
$.ajax({
url: "Second.aspx", //提交页面
data: null,
dataType: "json",
type: "post",
beforeSend: function () {
$("#LoadDiv").show();
},
complete: function () {
$("#LoadDiv").hide();
},
success: function (data) {
$.each(data.root, function (idx, item) {
if (idx == 0) {
return true; //同countinue,返回false同break
} else {
var DivId = item.DivId; //得到数据库中DIV的的ID
var DivWidth = item.DivWidth; //DIV的宽
var DivHeight = item.DivHeight; //DIV的高
var leftPosition = item.leftPosition; //DIV的左边距
var topPosition = item.topPosition; //DIV的右边距
var DivParentId = item.DivParentId; //DIV父元素的ID
var DivIds;
var DivParentIds;
if (DivId == "div1") {
DivIds = $("#div1");
} else if (DivId == "div2") {
DivIds = $("#div2");
} else if (DivId == "div3") {
DivIds = $("#div3");
} else if (DivId == "div4") {
DivIds = $("#div4");
} else if (DivId == "div5") {
DivIds = $("#div5");
} else if (DivId == "div6") {
DivIds = $("#div6");
} else if (DivId == "div7") {
DivIds = $("#div7");
} else if (DivId == "div8") {
DivIds = $("#div8");
} else if (DivId == "div9") {
DivIds = $("#div9");
} else if (DivId == "div10") {
DivIds = $("#div10");
}
if (DivParentId == "lefts") {
DivParentIds = $("#lefts");
} else if (DivParentId == "rights") {
DivParentIds = $("#rights");
} else if (DivParentId == "centers") {
DivParentIds = $("#centers");
}
DivIds.appendTo(DivParentIds).css({ left: leftPosition, top: topPosition }); //将DIV移动到其父元素中
//var DivIds = "#" + DivId;
//var DivParentIds = "#" + DivParentId;
//$(""+DivIds+"").prependTo($(""+DivParentIds+"")).css({ left: leftPosition, top: topPosition });//如果这样写的话IE9中会报错,但是不耽误效果
//$("#"+DivIds+"").prependTo($("#"+DivParentIds+"")).css({ left: leftPosition, top: topPosition });//同上
}
});
}
})
$("#btnSaveDiv").click(function () {
var jsonSaveStr = "{root:[";
//获取布局程序
$(".baseball").each(function () {
var DivId = $(this).attr("id"); //获取拖拽后DIV的ID
var DivWidth = $(this).width(); //获取拖拽后DIV的宽
var DivHeight = $(this).height(); //获取拖拽后DIV的高
var DivPositon = $(this).position(); //获取拖拽后DIV的位置
var leftPosition = DivPositon.left; //获取拖拽后DIV的右边距
var topPosition = DivPositon.top; //获取拖拽后DIV的左边距
var DivParentId = $(this).parent().attr("id");
jsonSaveStr += "{DivId:\"" + DivId + "\",DivWidth:" + DivWidth + ",DivHeight:" + DivHeight + ",leftPosition:" + leftPosition + ",topPosition:" + topPosition + ",DivParentId:\"" + DivParentId + "\"},";
});
jsonSaveStr = jsonSaveStr.substring(0, jsonSaveStr.length - 1);
jsonSaveStr += "]}";
//将jsonSaveStr保存成json串的格式保存到数据库
$.ajax({
url: "Second.aspx?jsonStr='" + jsonSaveStr + "'",
type: "post",
data: null,
dataType: "json",
beforeSend: function () {
$("#LoadDiv").show();
},
complete: function () {
$("#LoadDiv").hide();
},
success: function (data) {
if (data == "1") {
alert("保存成功");
}
}
});
});
})
</script>
不知为何放不进数据库里去??这是下载的代码,不是很会。
[解决办法]
在后台处理请求的页面(Second.aspx)设断点,首先要看是否成功收到请求
然后对处理数据保存的代码进行调试,找出问题所在
从大的方面,你要确定是发的问题,还是收的问题
[解决办法]
后台看看jsonSaveStr 对不对?进入后台了没有
[解决办法]
url: "Second.aspx?jsonStr='" + jsonSaveStr + "'",
传参数不用带单引号吧!
url: "Second.aspx?jsonStr=" + jsonSaveStr,
另外,到Second.aspx页面的Page_Load方法中断点查看一下,Request.QueryString["jsonStr"]能不能取到值,如果取到了,那就看看保存至数据库的方法有没有什么问题。
------解决方案--------------------
Ajax 提交数据给 asp.net ,aspx.net 用Request['']来接收数据,然后处理,保存到数据库
[解决办法]
不好意思,看不懂!
[解决办法]
建议你的jsonSaveStr直接写成参数data:jsonSaveStr,直接写在URL有可能遇到编码问题或者URL太长
而且你用post方式传参,用Request.Form["jsonSaveStr"]来接吧。
[解决办法]
查看
Request.QueryString["jsonStr"]有值没有
[解决办法]
dataType: "json",
数据类型换为text试试
[解决办法]
你要保存啥样,就分解成什么样。最主要的是你 ajax进入的那个后台文件 接不接受的到值 是问题。
、看看路径,看看格式
用下js调试
用用alert
试试jsonSaveStr 有值否