Javascript 无法从ajax值生成时间线图表
实际上,我正试图通过使用从服务器端传递并由ajax接收的数据,使用google的时间表来构建一个时间线图 问题是,当我尝试执行此操作时,会出现以下错误: 这是我从每个周期的$中得到的 由于我只是使用来自ajax的数据准备时间线,实际值将在稍后设置,而现在我只是尝试使用以下命令添加空白时间线,以便数据开始和结束应该相同 以下是ajax代码:Javascript 无法从ajax值生成时间线图表,javascript,timeline,Javascript,Timeline,实际上,我正试图通过使用从服务器端传递并由ajax接收的数据,使用google的时间表来构建一个时间线图 问题是,当我尝试执行此操作时,会出现以下错误: 这是我从每个周期的$中得到的 由于我只是使用来自ajax的数据准备时间线,实际值将在稍后设置,而现在我只是尝试使用以下命令添加空白时间线,以便数据开始和结束应该相同 以下是ajax代码: $.ajax({ type: "POST", url: "prenotazioni.aspx/getTavolo", data: "
$.ajax({
type: "POST",
url: "prenotazioni.aspx/getTavolo",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$.each(msg.d, function (k, v) {
//console.log(v);
dataTable.addRow([[v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]]);
});
}
});
更新:
这就是我试图通过ajax循环自动实现的目标
问题是,要使单元格为空,开始日期和结束日期必须相同,但不能对所有行都相同
下面是如何构建以下时间线的
dataTable.addRows([
["33", '', new Date(0, 0, 0, 11, 0, 0), new Date(0, 0, 0, 11, 0, 0)],
["Tavolo 2", '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)],
["Tavolo 3", '', new Date(0, 0, 0, 13, 0, 0), new Date(0, 0, 0, 13, 0, 0)],
["Tavolo 4", '', new Date(0, 0, 0, 14, 0, 0), new Date(0, 0, 0, 14, 0, 0)],
["Tavolo 5", '', new Date(0, 0, 0, 15, 0, 0), new Date(0, 0, 0, 15, 0, 0)],
["Tavolo 6", '', new Date(0, 0, 0, 16, 0, 0), new Date(0, 0, 0, 16, 0, 0)],
["Tavolo 7", '', new Date(0, 0, 0, 19, 0, 0), new Date(0, 0, 0, 19, 0, 0)],
["Tavolo 8", '', new Date(0, 0, 0, 20, 0, 0), new Date(0, 0, 0, 20, 0, 0)],
["Tavolo 9", '', new Date(0, 0, 0, 21, 0, 0), new Date(0, 0, 0, 21, 0, 0)],
]);
因此,现在的问题是如何使行的开始时间和结束时间相同,但每行的开始时间和结束时间不同。我认为问题在于您试图添加一行,其中只有一个元素:
dataTable.addRow([[v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]]);
使用此行,您将尝试添加以下数据:
[
[v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]
]
其中只有一个元素(列表中有一个列表),当您需要其中4个元素组成一个完整的行时(在您的案例中它应该包含4个元素)
只需拆下额外的支架,您就可以了:
dataTable.addRow([v, '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 12, 0, 0)]);
编辑:您在注释中报告的新错误(错误:属性x:预期长度,“NaN”
)可能是由于您提供的两个日期相同(根据)
编辑2:编辑后:
正如我在回复您的评论时所说,一行的结束日期可以与下一行的开始日期相同。试试这个:
dataTable.addRows([
["33", '', new Date(0, 0, 0, 11, 0, 0), new Date(0, 0, 0, 12, 0, 0)],
["Tavolo 2", '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 13, 0, 0)],
["Tavolo 3", '', new Date(0, 0, 0, 13, 0, 0), new Date(0, 0, 0, 14, 0, 0)],
["Tavolo 4", '', new Date(0, 0, 0, 14, 0, 0), new Date(0, 0, 0, 15, 0, 0)],
["Tavolo 5", '', new Date(0, 0, 0, 15, 0, 0), new Date(0, 0, 0, 16, 0, 0)],
["Tavolo 6", '', new Date(0, 0, 0, 16, 0, 0), new Date(0, 0, 0, 17, 0, 0)],
["Tavolo 7", '', new Date(0, 0, 0, 19, 0, 0), new Date(0, 0, 0, 20, 0, 0)],
["Tavolo 8", '', new Date(0, 0, 0, 20, 0, 0), new Date(0, 0, 0, 21, 0, 0)],
["Tavolo 9", '', new Date(0, 0, 0, 21, 0, 0), new Date(0, 0, 0, 22, 0, 0)],
]);
哦,好的,现在我得到了另一个错误,图表仍然没有生成:jsapi_编译的_ui_模块。js:87错误:属性x:预期长度,“NaN”。是的,我正在检查答案,问题是我如何为每行设置随机数据,但开始和结束的数据将相同,但每行的数据不同?对不起,我不明白您想要的最终结果是什么。开始和结束数据必须相同,但会导致错误。如果所有行都有相同的开始和结束数据,我必须为每个行设置不同的开始和结束数据,但每行的开始和结束数据必须相同,那么您应该创建另一个问题。你问了一个有范围的问题,你不应该改变这个范围,因为这意味着其他人不能回答你的问题。
dataTable.addRows([
["33", '', new Date(0, 0, 0, 11, 0, 0), new Date(0, 0, 0, 12, 0, 0)],
["Tavolo 2", '', new Date(0, 0, 0, 12, 0, 0), new Date(0, 0, 0, 13, 0, 0)],
["Tavolo 3", '', new Date(0, 0, 0, 13, 0, 0), new Date(0, 0, 0, 14, 0, 0)],
["Tavolo 4", '', new Date(0, 0, 0, 14, 0, 0), new Date(0, 0, 0, 15, 0, 0)],
["Tavolo 5", '', new Date(0, 0, 0, 15, 0, 0), new Date(0, 0, 0, 16, 0, 0)],
["Tavolo 6", '', new Date(0, 0, 0, 16, 0, 0), new Date(0, 0, 0, 17, 0, 0)],
["Tavolo 7", '', new Date(0, 0, 0, 19, 0, 0), new Date(0, 0, 0, 20, 0, 0)],
["Tavolo 8", '', new Date(0, 0, 0, 20, 0, 0), new Date(0, 0, 0, 21, 0, 0)],
["Tavolo 9", '', new Date(0, 0, 0, 21, 0, 0), new Date(0, 0, 0, 22, 0, 0)],
]);