2010-08-11 5 views
3

Je tire mes données Fullcalendar pour le mois en cours de visionnage. Lorsque je clique sur les boutons d'affichage Next/Prev Month, il ne sort pas et récupère les nouvelles données pour le nouveau mois.Extraction des données pour les mois suivants/précédents

Comment puis-je obtenir les boutons Suivant/Précédent pour faire un autre appel à la base de données et tirer des enregistrements pour ce mois?

+0

Quelle plate-forme utilisez-vous? – Achilles

Répondre

0

Vous devez indiquer au contrôle où charger les données d'événement à partir de l'initialisation. Vos choix sont de spécifier a json feed, an array of events ou a function vous écrivez ce qui va récupérer tous les événements. Si vous utilisez la méthode json ou la fonction, le contrôle fullcalendar tentera uniquement de charger les données pour la plage que l'utilisateur tente d'afficher. Ainsi, lorsque l'utilisateur navigue jusqu'au mois suivant, les événements du mois seront extraits du flux/de la fonction.

+0

Hey Morty, Merci pour l'aide. J'essaie d'éviter de tirer TOUTES les données dans mon flux CF/JSON. Si quelqu'un clique sur le mois suivant/précédent, je veux qu'il récupère les données du mois dans la base de données. Il semble que beaucoup d'over-head tirer TOUT hors de la DB quand il y a une chance que tout n'est pas nécessaire. (pourquoi tirer des années de données si l'utilisateur ne regarde que le mois en cours) – Josh

+1

@Josh Le fullcalendar ajoute automatiquement certains paramètres au chemin que vous spécifiez pour le flux json. Voir ici: http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/ Vous pouvez utiliser les paramètres 'start' et' end' pour interroger votre base de données uniquement pour les événements requis! – theycallmemorty

3

Définissez un rappel d'événement pour effectuer une requête ajax sur votre API. Voir les documents here. Voici un exemple d'intégration avec mon API qui utilise le début et la fin d'époque pour obtenir les paramètres dans les recherches.

$('#calendar').fullCalendar({ 
    // other options here... 

    events: function(start, end, callback) { 
     start = start.getTime()/1000; 
     end = end.getTime()/1000; 
     $.ajax({ 
      url: '/api/events/1/?start='+ start + '&end=' + end, 
      dataType: 'json', 
      success: function(doc) { 
       var my_events = []; 
       $.each(doc.person.events, function (index, elem) { 
        my_events.push({ 
         title: elem.event.title, 
         start: elem.event.start, 
         end: elem.event.end, 
        }); 
       }); 
      callback(my_events); 
      } 
     }); 
    } 
}); 

Dans mon code actuel (c'est une version réduite) je fais plus avec la requête ajax. Vous pouvez également simplifier cela en utilisant json feed events de fullcalendar qui passera les dates d'époque de début et de fin d'obtenir des paramètres pour vous. Par exemple:

$('#calendar').fullCalendar({ 
    events: "/api/events/1/" 
}); 

Ces deux solutions effectuerez des appels api à votre serveur comme http://yourwebsite.com/api/events/1/?start=123454444&end=12355324234 de sorte que vous aurez besoin de configurer votre serveur pour gérer que de façon appropriée.

REMARQUE: Dans le cas où vous vous posez la question, le "1" dans ces URL est utilisé pour identifier l'ID de l'utilisateur pour récupérer les événements.

Les docs pour fullcalendar sont merveilleux, lisez-les, puis relisez-les.

+0

Je pense que cela pourrait être la solution que je suis après. Où la fonction obtient-elle les valeurs de début, de fin et de rappel? Je dois passer le mois/année affiché au fichier JSON via fullcalendar. Je vais essayer et vous le faire savoir. Vous plaisantez, la documentation fullcalendar est HORRIBLE !!! Que diriez-vous de quelques exemples ou extraits de code dans la documentation. Ce serait bien de voir comment le code est implémenté plutôt que ce qu'ils ont. Que diriez-vous de l'exemple JSON qu'il montre. Ne montre pas chaud pour formater l'heure du tout, a juste des dates. La documentation manque beaucoup à mon humble avis. – Josh

+1

Le rappel 'events' est passé dans les options, puis appelé avec les arguments' start, end, callback' dans les internes fullcalendar. En ce qui concerne la documentation, gardez à l'esprit que c'est un gars qui a développé, documenté, et ouvert à l'origine. C'est assez bon comparé à la plupart des autres packagés. Le contenu du format est expliqué très clairement dans le code de la documentation 'EventObject'. Et là où la documentation manque, il y a toujours le code source à référencer. – sdolan