Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 来自ajax调用的Fullcalendar显示事件_Json_Ajax_Fullcalendar - Fatal编程技术网

Json 来自ajax调用的Fullcalendar显示事件

Json 来自ajax调用的Fullcalendar显示事件,json,ajax,fullcalendar,Json,Ajax,Fullcalendar,我读过很多关于我的问题的帖子,但没有一篇能回答我的问题。 这是我的代码: 编辑 events: { url: 'AJAX_selectEvent.do', data: function() { return { "rcn": document.getElementById("rcn").value } }, error: function(data) { console.log(d

我读过很多关于我的问题的帖子,但没有一篇能回答我的问题。 这是我的代码:

编辑

events: {
      url: 'AJAX_selectEvent.do',
      data: function() {
        return {
          "rcn": document.getElementById("rcn").value
        }
      },
      error: function(data) {
        console.log(data);
        alert("Ajax call error");
      }
    },
以下是我的JAVA数据:

[{id:“0”,“resourceId:“p”,“start:“2019-07-08”,“end:“2019-07-09”,“title:“50602378”},{id:“1”,“resourceId:“p”,“start:“2019-06-18”,“end:“2019-06-19”,“title:“50602503”},{“id:“2”,“resourceId:“p”,“start:“2019-06-26”,“end:“2019-06-27”,“title:“50603191:”,{“id:“3”,“resourceId:“p”,“start:“2019-06-24”,“end”title:“2019-06-03192”},{“id”:“4”,“resourceId”:“p”,“开始”:“2019-06-13”,“结束”:“2019-06-14”,“标题”:“50604130”}

如您所见,我正在从参数“rcn”获取JSON数据。在我的成功函数中,我可以看到它,但它不会显示在日历中。我收到一个警告:

VM1236 main.js:5162 undefined (26) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}
(anonymous) @ VM1236 main.js:5162
wrappedFailure @ VM1236 main.js:3406
success @ RECHERCHE_getInfo.do:87
u @ VM1234 jquery.min.js:2
fireWith @ VM1234 jquery.min.js:2
k @ VM1234 jquery.min.js:2
(anonymous) @ VM1234 jquery.min.js:2
XMLHttpRequest.send (async)
send @ VM1234 jquery.min.js:2
ajax @ VM1234 jquery.min.js:2
events @ RECHERCHE_getInfo.do:63
unpromisify @ VM1236 main.js:3410
fetch @ VM1236 main.js:4183
fetchSource @ VM1236 main.js:5137
fetchSourcesByIds @ VM1236 main.js:5126
fetchDirtySources @ VM1236 main.js:5106
reduceEventSources @ VM1236 main.js:5069
reduce @ VM1236 main.js:5528
Calendar.reduce @ VM1236 main.js:6652
Calendar.dispatch @ VM1236 main.js:6610
(anonymous) @ VM1236 main.js:6583
Calendar.batchRendering @ VM1236 main.js:6673
Calendar.hydrate @ VM1236 main.js:6580
Calendar @ VM1236 main.js:6490
(anonymous) @ RECHERCHE_getInfo.do:32
使用console.dir(数据),我可以看到(当然是26行):

数组(26){id:“0”,标题:“50602378”,开始:“08/07/19”,结束:“09/07/0019”,资源id:“p”}

你能帮我理解为什么我从回调(事件)中得到警告,为什么它不显示事件吗

编辑:新错误,即使我将jquery版本1更改为2,并且库

Uncaught TypeError: e.class is not a constructor
at constructor.instantiateView (fullcalendar.min.js:9)
at constructor.renderView (fullcalendar.min.js:9)
at constructor.initialRender (fullcalendar.min.js:9)
at constructor.render (fullcalendar.min.js:9)
at HTMLDivElement.<anonymous> (fullcalendar.min.js:6)
at Function.each (jquery-2.0.0.min.js:4)
at init.each (jquery-2.0.0.min.js:4)
at init.t.fn.fullCalendar (fullcalendar.min.js:6)
at HTMLDocument.<anonymous> (RECHERCHE_getInfo.do:32)
at l (jquery-2.0.0.min.js:4)
uncaughttypeerror:e.class不是构造函数
在constructor.instanceView(fullcalendar.min.js:9)中
位于constructor.renderView(fullcalendar.min.js:9)
在constructor.initialRender上(fullcalendar.min.js:9)
位于constructor.render(fullcalendar.min.js:9)
在HtmlLevel。(fullcalendar.min.js:6)
在Function.each(jquery-2.0.0.min.js:4)
在init.each(jquery-2.0.0.min.js:4)
在init.t.fn.fullCalendar上(fullCalendar.min.js:6)
在HTMLDocument上。(RECHERCHE_getInfo.do:32)
在l(jquery-2.0.0.min.js:4)



谢谢

我无法重现您的确切警告。我使用您提供的Java输出示例数据对您的代码进行了演示,但粘贴到myjson.com上的虚拟端点URL中。请参阅。对于fullCalendar v3,这会产生错误

回调不是一个函数

这是因为您错误地指定了events函数的参数。根据说明,参数应该是
函数(开始、结束、时区、回调)
-您没有指定所有参数,因此您调用的变量
callback
实际上包含时区。JavaScript只使用参数的位置来计算传递给它的内容,而不是名称-名称实际上可以是您喜欢的任何名称(因此
函数(a、b、c、d)
的工作原理是一样的,尽管维护起来有点不清楚)

如果您解决了这个问题,那么代码应该可以工作-demo:


然而,我实际上并不认为这是必要的似乎已经以fullCalendar所期望的正确格式生成了数据。因此,您不需要进行所有这些额外的处理。实际上,您正在创建一个具有相同结构的数组,显然这有点毫无意义

(另外,作为旁注,
$(this).attr('id')
之类的代码不需要访问响应的属性-JSON数据被解析为一个普通的JS对象,因此
this.id
将产生相同的结果。
.attr()
语法仅在尝试从jQuery对象获取时才需要(表示HTML元素)或具有更复杂结构的XML节点。)

相反,您应该能够使用该模式,在该模式中,您只需向fullCalendar提供服务器URL和一些简单的选项,例如回调以获取
rcn
值,fullCalendar将负责构造AJAX请求、接收响应并将数据加载到日历中

以下是您需要的代码:

events: {
  url: "AJAX_selectEvent.do",
  data: function() {
    return {
      "rcn": document.getElementById("rcn").value
    }
  },
  error: function(data) {
    console.log(data);
    alert("Ajax call error");
  }
}

这里有一个使用虚拟URL的演示:

开始:“08/07/19”,结束:“09/07/0019”
-这些日期的格式无效。我不知道这是否是问题的原因,但它们肯定不会被fullCalendar识别。请检查文档(看起来您使用的是fullCalendar的第3版,因此您需要阅读这篇文章来了解有效日期字符串的构成:)不管怎样,您的警告是…哪一行发出了警告?我不完全确定“成功”中的代码函数很有意义……您似乎将返回的数据视为某种HTML或XML,但您的ajax配置显示您返回的是JSON。服务器返回的原始数据实际上是什么样子的?如果没有看到示例,很难确定问题出在哪里。@ADyson感谢您的回复,很抱歉我的回答太晚了(我生病了)。我根据FullCalendar v3(yyyy-MM-dd)更改了日期格式。但它仍然不会显示,而且我仍然有相同的警告,没有任何信息。在我的成功函数中,我正在查找带有attribute(键,因为这是json)的值。非常感谢你向我解释了很多事情,我真的很感激。我按照你告诉我的做了:在“回调”之前添加参数“timezone”,并将事件用作JSON提要。现在我收到另一条错误消息:“Uncaught TypeError:e.class不是构造函数”。这是js导入版本的问题吗?我的问题是:对于fullCalendar v3,您至少需要jQuery 2.0或更高版本。据我所知,1.11将不起作用。但哪行代码会引发错误?如果不知道,很难说错误的确切原因。请在“回调”之前添加参数“timezone”并将事件用作JSON提要"…您不需要同时执行这两项操作。您可以将事件用作函数模式,也可以将事件用作JSON。我不知道您如何能够同时使用这两项,这是毫无意义的。这就是为什么我用一行分隔了我答案的两部分-它们是可选的。哈,对不起,我错了。我使用JSON提要,因此我不再具有该函数。我把错误写在我的邮箱上,然后再把代码的当前版本发给你,
events: {
  url: "AJAX_selectEvent.do",
  data: function() {
    return {
      "rcn": document.getElementById("rcn").value
    }
  },
  error: function(data) {
    console.log(data);
    alert("Ajax call error");
  }
}