变量传递的一个小问题

nai598455803 2013-08-12 09:54:27
我在后台取的值,拼接成一个字符串str, str={id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"},有一个事件events, 它的格式是这样的 events:[] ,现在我把
str 取到的内容直接写到事件里面就有内容,我events:["+str+"] 这么传str 就没有,请问我哪里错了 ??
...全文
476 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftiger 2013-08-12
  • 打赏
  • 举报
回复
楼上的可能是正确原因,不过已经使用jQuery了。 直接修改 var json= JSON.parse(data); 改成 var json = $.parseJSON(data); 就好
「已注销」 2013-08-12
  • 打赏
  • 举报
回复
for(var i=0;i<json.length;i++){ str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}"; } str = JSON.parse(str); 低版本IE不支持JSON对象,你可以去下载json2.js引入就可以了。
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
引用 27 楼 ftiger 的回复:
[quote=引用 26 楼 nai598455803 的回复:] [quote=引用 25 楼 ftiger 的回复:]

$.post(actionUrl,params,function(data,textStatus){
                    //  alert(data);
	var json= JSON.parse(data);
	
	/*
	for(var i=0;i<json.length;i++){
		str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
	} */
//转换用这种方法。
	var vals =[];
	for(var i=0;i<json.length;i++){
		vals.push({id:json[i].teacherId , title:json[i].istartTime , start:json[i].strStartDate , end:json[i].strEndDate})
	}

	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
				$('#calendar').fullCalendar({
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
	editable: true,
	events:[vals]
				// 
	});       
 })
不好意思,这个也不对[/quote] 不好意思,你代码不全,没法调试,大概就是这个意思,自己调试吧。[/quote] 好吧, 谢谢你了
ftiger 2013-08-12
  • 打赏
  • 举报
回复
引用 26 楼 nai598455803 的回复:
[quote=引用 25 楼 ftiger 的回复:]

$.post(actionUrl,params,function(data,textStatus){
                    //  alert(data);
	var json= JSON.parse(data);
	
	/*
	for(var i=0;i<json.length;i++){
		str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
	} */
//转换用这种方法。
	var vals =[];
	for(var i=0;i<json.length;i++){
		vals.push({id:json[i].teacherId , title:json[i].istartTime , start:json[i].strStartDate , end:json[i].strEndDate})
	}

	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
				$('#calendar').fullCalendar({
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
	editable: true,
	events:[vals]
				// 
	});       
 })
不好意思,这个也不对[/quote] 不好意思,你代码不全,没法调试,大概就是这个意思,自己调试吧。
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
引用 25 楼 ftiger 的回复:

$.post(actionUrl,params,function(data,textStatus){
                    //  alert(data);
	var json= JSON.parse(data);
	
	/*
	for(var i=0;i<json.length;i++){
		str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
	} */
//转换用这种方法。
	var vals =[];
	for(var i=0;i<json.length;i++){
		vals.push({id:json[i].teacherId , title:json[i].istartTime , start:json[i].strStartDate , end:json[i].strEndDate})
	}

	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
				$('#calendar').fullCalendar({
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
	editable: true,
	events:[vals]
				// 
	});       
 })
不好意思,这个也不对
ftiger 2013-08-12
  • 打赏
  • 举报
回复

$.post(actionUrl,params,function(data,textStatus){
                    //  alert(data);
	var json= JSON.parse(data);
	
	/*
	for(var i=0;i<json.length;i++){
		str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
	} */
//转换用这种方法。
	var vals =[];
	for(var i=0;i<json.length;i++){
		vals.push({id:json[i].teacherId , title:json[i].istartTime , start:json[i].strStartDate , end:json[i].strEndDate})
	}

	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
				$('#calendar').fullCalendar({
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
	editable: true,
	events:[vals]
				// 
	});       
 })
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
引用 22 楼 xiaofanku 的回复:
直接在actionUrl中输出一个json对象数组(符合event的要求格式),post中设置请求类型为json,直接把data给event不得了。用的着这么麻烦吗
因为取出来的字段和event的要求格式 不一样,所以我拼接一下
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
应该是个数组,http://www.cnblogs.com/yuzhongwusan/archive/2013/02/15/2912840.html 这里是个API 您帮我看下,谢谢了
街头小贩 2013-08-12
  • 打赏
  • 举报
回复
直接在actionUrl中输出一个json对象数组(符合event的要求格式),post中设置请求类型为json,直接把data给event不得了。用的着这么麻烦吗
街头小贩 2013-08-12
  • 打赏
  • 举报
回复

      for(var i=0;i<json.length;i++){
                     str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
                }  
还是一个数组
ftiger 2013-08-12
  • 打赏
  • 举报
回复
看看你 str那一句是如何定义的。
ftiger 2013-08-12
  • 打赏
  • 举报
回复
str 那一句呢? 不过估计events:[str] 这样就行了。
街头小贩 2013-08-12
  • 打赏
  • 举报
回复
引用 16 楼 nai598455803 的回复:
[quote=引用 14 楼 xiaofanku 的回复:] events:[str]
不对,试过了[/quote]
 events:[{id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"}]
这样可以。说明人家要是一个json对象不是一个字符串,你把你的字符串转成json对象
events:[JSON.parse(str)]
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
做的是fullCalendar 这个东西
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
引用 14 楼 xiaofanku 的回复:
events:[str]
不对,试过了
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
$.post(actionUrl,params,function(data,textStatus){
					//  alert(data);
					var json= JSON.parse(data);
					for(var i=0;i<json.length;i++){
					 str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
				}			 	 
					alert(str);
					var date = new Date();
					var d = date.getDate();
					var m = date.getMonth();
					var y = date.getFullYear();
								$('#calendar').fullCalendar({
						header: {
							left: 'prev,next today',
							center: 'title',
							right: 'month,agendaWeek,agendaDay'
						},
					editable: true,
					events:[{id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"}]
								// 
					});		
			})
这样可以
街头小贩 2013-08-12
  • 打赏
  • 举报
回复
events:[str]
ftiger 2013-08-12
  • 打赏
  • 举报
回复
引用 11 楼 nai598455803 的回复:
[quote=引用 9 楼 xiaofanku 的回复:] [quote=引用 6 楼 ftiger 的回复:] 首先你要表达清楚, str={id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"} 这个不是一个字符串,而已经是一个js对象了。 events又是什么,events:["+str+"] 这个出来的应当又是什么。
拼接成一个字符串str, str={id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"}[/quote] 因为events 要这种格式的,所以我拼成这种了,[/quote] 还是没表达清楚,贴代码吧。
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
$.post(actionUrl,params,function(data,textStatus){
					//  alert(data);
					var json= JSON.parse(data);
					for(var i=0;i<json.length;i++){
					 str+="{id:\""+json[i].teacherId+"\",title:\""+json[i].istartTime+"\",start:\""+json[i].strStartDate+"\",end:\""+json[i].strEndDate+"\"}";
				}			 	 
					alert(str);
					var date = new Date();
					var d = date.getDate();
					var m = date.getMonth();
					var y = date.getFullYear();
								$('#calendar').fullCalendar({
						header: {
							left: 'prev,next today',
							center: 'title',
							right: 'month,agendaWeek,agendaDay'
						},
					editable: true,
					events:["+str+"]
						// {id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"}
					});		
			})
nai598455803 2013-08-12
  • 打赏
  • 举报
回复
引用 9 楼 xiaofanku 的回复:
[quote=引用 6 楼 ftiger 的回复:] 首先你要表达清楚, str={id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"} 这个不是一个字符串,而已经是一个js对象了。 events又是什么,events:["+str+"] 这个出来的应当又是什么。
拼接成一个字符串str, str={id:"1",title:"100",start:"2012-12-11",end:"2013-10-10"}[/quote] 因为events 要这种格式的,所以我拼成这种了,
加载更多回复(18)

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧