Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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/jquery/71.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
Javascript 如何显示JSON提要中的特定事件_Javascript_Jquery_Json_Jsf 2_Fullcalendar - Fatal编程技术网

Javascript 如何显示JSON提要中的特定事件

Javascript 如何显示JSON提要中的特定事件,javascript,jquery,json,jsf-2,fullcalendar,Javascript,Jquery,Json,Jsf 2,Fullcalendar,我在下面的页面上有一个JSON提要,其中包含大量数据: './PlanningFeed.xhtml' 我可以在一个基本的日历上显示数据,它正在工作 问题是我只想显示满足条件的事件 这就是我获取JSON数据的方式: eventSources: [ { url: './PlanningFeed.xhtml', type: 'GET', data: { start: firstda

我在下面的页面上有一个JSON提要,其中包含大量数据:

'./PlanningFeed.xhtml'
我可以在一个基本的日历上显示数据,它正在工作

问题是我只想显示满足条件的事件

这就是我获取JSON数据的方式:

eventSources: [
        {
            url: './PlanningFeed.xhtml',
            type: 'GET',
            data: {
                start: firstdate,
                end: lastdate,
                salle: salle //this is my attempt to get only events that has a specific
                             //"salle" attribute,the field salle is declared and populated
                             //in all event objects.
                             //but this parameter here  it doesn't affect
                             //anything and  my calendar is created with all salle events showed.
                             //which means this doesn't work.
            }
        }
    ]
}); 
我还尝试了
eventRender
,但没有成功:

    eventRender: function(event, element) {


        if (event.salle === salle) {
            console.log('added', event.salle);

        } else if (event.salle !== salle) {
            console.log('deleted', event.salle);
            $(placeholder).fullCalendar('removeEvents', event.id);

        }
    }
我不想从JSON提要中删除数据,我以后可能会使用它。我希望我可以查询JSON提要以仅显示我想要的事件(例如:event.salle='XYZ')

请不要犹豫询问更多信息

更新1:

[{"title":"uiyuiyutyiyuity\nANGIO SCANNER RENALE.","start":"2014-12-01T07:30:00","end":"2014-12-01T07:45:00","salle":"SCANNER1","backgroundColor":"#B6E8FF","patState":4,"rapportWrittenState":0,"patientFullName":"uiyuiyutyiyuity","studyDureeMinute":15,"payStateImage":"non-cote","bannerColor":"#98d1ec","borderColor":"#98d1ec","id":"1"},
 {"title":"hjghjghjghj\n2 CHEVILLE F","start":"2014-12-01T07:15:00","end":"2014-12-01T07:35:00","salle":"RADIO 1","backgroundColor":"#CDDFED","patState":1,"rapportWrittenState":0,"patientFullName":"hjghjghjghj","studyDureeMinute":20,"payStateImage":"non-cote","bannerColor":"#a0c2dc","borderColor":"#a0c2dc","id":"2"},
 {"title":"yiyuiyuiyui\nANGIO SCANNER ABDOMINALE.","start":"2014-12-01T06:55:00","end":"2014-12-01T07:15:00","salle":"SCANNER1","backgroundColor":"#F0F0F0","patState":7,"rapportWrittenState":0,"patientFullName":"yiyuiyuiyui","studyDureeMinute":20,"payStateImage":"non-cote","bannerColor":"#C8C8C8","borderColor":"#C8C8C8","id":"3"},
{"title":"tuutyuj\nANGIO SCANNER CEREBRAL.","start":"2014-12-01T06:25:00","end":"2014-12-01T06:45:00","salle":"SCANNER1","backgroundColor":"#E8F5BB","patState":5,"rapportWrittenState":0,"patientFullName":"tuutyuj","studyDureeMinute":20,"payStateImage":"non-cote","bannerColor":"#cede97","borderColor":"#cede97","id":"4"},
{"title":"dfgdfgdfgdfg\nANGIO SCANNER CERVICAL.","start":"2014-12-01T06:00:00","end":"2014-12-01T06:20:00","salle":"SCANNER1","backgroundColor":"#FFC592","patState":3,"rapportWrittenState":0,"patientFullName":"dfgdfgdfgdfg","studyDureeMinute":20,"payStateImage":"c_valider","bannerColor":"#e8a66c","borderColor":"#e8a66c","id":"5"}]

我不太擅长完整的日历,但我找到了解决您问题的方法

删除事件后,必须重新引发所有事件:

$(placeholder).fullCalendar('removeEvents', event.id);
 setTimeout(function(){
 $(placeholder).fullCalendar("rerenderEvents");
},1);
我肯定使用超时。它正在测试fullcalendar-2.2.3的全新下载

编辑: 确保您的变量和if条件。

var eventStore;//将预筛选的事件存储在此处,以便我们以后可以获取它们
var eventStore;// store pre filtered events here so we can get at them later
...
events: function(start,end,callback) {
    $.ajax('http://www.myendpoint.com/getevents.php', {start:start,end:end}, function(data) {
        var events = JSON.parse(data);
        eventStore = events;
        var newEventList = [];
        for(var i = 0; i < events.length; i++){
            if(events.salle == true){
                newEventList.push(events[i]);
            }
        }
        callback(newEventList);
    });
}
... 事件:函数(开始、结束、回调){ $.ajax('http://www.myendpoint.com/getevents.php“,{start:start,end:end},函数(数据){ var events=JSON.parse(数据); eventStore=事件; var newEventList=[]; 对于(var i=0;i

让您的Web服务过滤数据并返回您需要的内容可能是最有意义的,但是您可以在显示之前使用上述自定义函数过滤事件

在使用JSF时,使用ajax oncomplete从服务器端调用fullcalendar

  • 从数据库加载特定数据
  • 使用GSON将其转换为JSON字符串
  • 将事件数组加载到日历中

  • 希望这能有所帮助。

    你能展示你的json返回的示例代码吗?与其要求完整的日历触发ajax,不如发送请求,获取数据,过滤数据,将其保存在数组中,并将其作为完整日历的输入?因为我需要在同一页面中创建5个fullCalendar实例,并且每个实例都需要显示来自同一JSON提要的特定事件,我如何明确地告诉每个实例要获取/显示哪些数据。我不确定
    $(占位符)。fullCalendar('removeEvents',event.id);
    有效。我也对事件使用这种语法:
    事件:{url:'path/events.php',}
    现在我正在为您的案例进行测试。我可以显示我没有问题的事件,我的问题是如何从充满事件的JSON提要中仅显示特定的满足条件的事件(换句话说,我有一个一天内所有5个房间的JSON提要,我希望每个日历都显示一个房间的事件,如何实现这一点?)它现在起作用了,但我看到所有事件,然后我不想看到的事件消失了。但是没有更好的解决方案,比如只获取我需要的数据吗?