IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

FullCalendar et les évènements externes [Plugin]


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut FullCalendar et les évènements externes
    Bonjour à tous,

    Pour un projet j'utilise le plugin FullCalendar qui est très réussi et fonctionne très bien cependant je rencontre un petit problème pour terminer cette partie "planning".
    Je vois la cause du problème mais je ne trouve pas la solution, ni sur la documentation ni sur le net, j'espère que quelqu'un pourra m'aider.

    Donc pour faire court j'ai un calendrier avec une liste de chauffeurs et des heures. J'ai un bloc d'interventions que je dépose sur mon planning et tout ça fonctionne très bien.
    Je suis en mode jour par jour donc pour chaque jour je charge mes interventions en Ajax et les affiche sur le planning.

    Maintenant pour mon "bloc" d'interventions externes (celles à placer sur le planning), je me suis débrouillé pour aller les chercher en Ajax et les afficher (en changeant de jour ça marche) seulement ... le drag & drop ne fonctionne plus du coup...

    Voici un extrait de ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function loadExternalEvents() {
                        var moment = $('#calendar').fullCalendar('getDate');
                        var date = moment.format();
     
                        $.ajax({
                            url : "<?= $ihm['ajax_dir']; ?>/chargement-interventions-externe.php",
                            type : "POST",
                            data : "date=" + date,
                            dataType: "html",
                            success: function(data) {
                                $('#external-events').html(data);
                            },
                            error: function() {
                                $('#ajax-error').show();
                            }
                        });
                    }
    Je récupère la date grâce à FullCalendar et je m'en sers pour aller chercher mes interventions pour la date en question. Ensuite j'affiche la liste des interventions dans ma div#external-events.
    La raison du problème je pense que ça vient du fait que ma div est remplie en Ajax après que le calendrier ai été chargé et du coup il est un peu perdu pour effectuer le drag & drop...

    Si quelqu'un peut m'aider ce serait très sympa, merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Personne n'aurait une petite idée ? Un bout de piste ?
    Merci d'avance

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    La raison du problème je pense que ça vient du fait que ma div est remplie en Ajax après que le calendrier ai été chargé.
    pourquoi ne pas lancer Ajax juste avant que le calendrier se charge?

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Parce que du coup si je charge mon Ajax avant de charger le calendrier, je n'ai pas la date du calendrier. J'ai besoin de cette date pour ma requête en Ajax.

    Merci de ta réponse

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    avez-vous consulter cette documentation ?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Merci de ton lien, mais lors des mes recherches j'étais tombé dessus et ça n'explique pas la partie sur laquelle je suis.
    Ce tutoriel parle juste du fait de charger les évènements sur le calendrier, et dans mon cas c'est bon.

    Mon seul problème vient du chargement des évènement externes (dans une div à part) pour ensuite les faire glisser sur le calendrier pour les programmer.

  7. #7
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    bonsoir,
    bon je n'ai jamais utilisé le plugin fullCalendar auparavant, mais j'ai fais une petite recherche et j'ai trouvé qu'il existe une fonction qui s'appelle eventAfterAllRender, que l'on peut utiliser comme paramètre de fullCalendar.
    regarde un peu ici cet petit exemple que j'ai mis a ta disposition.

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Je te remercie pour avoir passé du temps à faire des recherches.
    Je vais tester tout ça dans la journée de demain, je te tiens au courant.

    Encore merci

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Bon j'ai essayé j'arrive à rien de mieux.

    Est-ce que ça change quelque chose d'avoir une réponse au format JSON par rapport au HTML dont je me sers à l'origine ?
    Parce que je galère un petit peu avec ton exemple en JSON.

  10. #10
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    oui, il est possible d'utiliser le format html au lieu de json.
    j'ai changé un peu le code : ICI.
    supposons que le serveur web nous renvois le contenu de la variable html.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Bon, je suis dessus depuis le début de l'après-midi et il me manque un tout petit truc mais je n'arrive pas au résultat voulu...

    Finalement j'ai réussi à jouer avec le JSON, ça marche bien. Avec eventAfterAllRender j'arrive à charger et afficher mes évènements externes, ceux-ci peuvent être déplacés sur le calendrier sans aucun problème.

    Mais une fois l'évènement déposé, je n'ai plus mon objet "event" qui contient la date, l'heure de debut, l'heure de fin et surtout mon id de l'évènement pour faire l'update en base de données...

    Je remets l'extrait de mon code pour bien voir ou j'en suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    eventAfterAllRender: function(view) { // Appelé quand toutes les vues ont été chargées
        var moment = $('#calendar').fullCalendar('getDate');
        var date = moment.format();
     
        loadExternalEvents(date);
    }
     
    function loadExternalEvents(date) {
        $.ajax({
            url : "<?= $ihm['ajax_dir']; ?>/chargement-interventions-externe.php",
            type : "post",
            data : "date=" + date,
            dataType: "json",
            success: function(retour) {
                $("#events-list .fc-event").remove();
                $.each(retour, function(a, b) {
                    $("#events-list")
                    .append("<div class=\"fc-event\" data-stick=\"true\" data-event=\"1\" data-id=\"" + retour[a].id_intervention + "\">" + retour[a].code_intervention + "</div>")  
                });
     
                $("#events-list .fc-event")
                .draggable({
                    zIndex: 999,
                    revert: true, // autoriser l'element de revenir a sa place initiale
                    revertDuration: 100 //  temps original après libération de drag
                });
     
            },
            error: function() {
                $('#ajax-error').show();
            }
        });
    }
    Ensuite voici la structure de ma liste d'interventions externes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div class="row">
        <div id="wrap">
            <div id="external-events">
                <h4>Liste des interventions</h4>
                <div id="events-list">
     
                </div>
                <div style='clear:both'></div>
            </div>
        </div>
    </div>
    Concernant le drop, il est indiqué dans la documentation qu'il existe la fonction "drop" lorsque l'on déplace un évènement externe et aussi la fonction "eventReceive" lorsque l'on déplace un évènement qui est indiqué comme un évènement full-calendar. C'est à dire qu'il doit contenir un attribut "data-event" à 1 ou tout autre valeur.

    Du coup avec eventReceive j'ai bien mon objet event en paramètre mais impossible d'assigner l'id de l'intervention à cet event.

    Pour les évènements déjà en place sur le calendrier j'utilise la même fonction eventReceive et celle-ci me retourne l'id de l'intervention que j'ai spécifié dans l'attribut "data-id" de chaque évènement mais pour les évènements externes, impossible de retrouver l'id...

    Encore merci beaucoup pour ton aide, j'ai un peu avancé sur le problème

    EDIT : Finalement j'ai trouvé un moyen d'enregistrer mon évènement externe déposé sur le planning. Il suffisait de modifier la ligne que je rajoute en Ajax.
    Il fallait l'écrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .append("<div class=\"fc-event\" data-event='{\"id\": "+ retour[a].id_intervention +", \"stick\": \"true\", \"title\": \"" + retour[a].code_intervention +"\"}'>" + retour[a].code_intervention + "</div>")
    Un seul data-event qui contient tout ce dont j'ai besoin et du coup je retrouve mes id, title etc... dans le paramètre event.

    Par contre dernière étape la suppression de l'évènement externe de la liste une fois qu'il est sur le planning. Encore merci

  12. #12
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    tu avances bien , n'oublis pas que le plugin est trop riche, alors il vaut mieux bien comprendre ses fonctionnalités et aussi comment les utiliser.

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Oui j'ai vu qu'il y'avait des tonnes de fonctionnalités qui n'allaient sans doute pas me servir.

    Mon dernier problème vient de ma liste des évènements externes, quand je dépose un de ces évènements sur mon calendrier, ensuite je veux qu'il soit enlevé de ma liste (pour cela j'ai un champ status que je modifie en BDD) mais le problème c'est que au drop de mon évènement je modifie en BDD avec le eventReceive et j'affiche mes évènements externes avec le eventAfterAllRender.

    Donc je dépose mon évènement, il me réaffiche les évènements externes avant l'enregistrement du coup l'évènement déposé n'a pas été modifié avant de réaffiché la liste et il apparait donc encore. Si je rafraichis la page il n'est plus présent (normal).

    Et du coup je ne trouve rien qui correspond à pouvoir être appelé avant le eventAfterAllRender...

  14. #14
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    pour que l’Évent que tu viens de dropé soit enlevé de la liste des évents, il faut utiliser un input type='check-box' avec id="drop-remove"
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type='checkbox' id='drop-remove'  checked='checked'/>
    <label for='drop-remove'>remove after drop</label>
    comme l'exemple ici : http://codepen.io/subodhghulaxe/pen/EavbOz

  15. #15
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Oui ça je sais mais j'ai supprimer la checkbox car je ne veux pas laisser le choix, on supprime une fois déposé.

    Et puis comme mes évènements externes sont générés en Ajax dans le eventAfterAllRender, le $(this).remove() ne fonctionne plus car à chaque ajout d'évènement sur le calendrier ma liste d'évènement externes se charge et elle se charge AVANT le drop ou eventReceive (je précise en majuscule car c'est la source du problème)

    Mes évènements en base de donnée ont un status qui est de 1 quand un évènement est programmé sur le calendrier et 2 quand il doit apparaître dans la liste des évènements externes. Une fois l'évènement "droppé" sur le calendrier je fais un update et son status passe à 1. Normalement aucun problème sauf que ma liste d'évènements externes se rafraîchit avant l'update et du coup mon évènement apparaît encore une fois après l'avoir "droppé".

    Je ne sais pas si c'est très clair

    En tout cas merci à toi de prendre tout ce temps pour m'aider

  16. #16
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    eventAfterAllRender est une fonction callback qui ne se déclenche qu'après la fin d’exécution de tout les renderEvent, donc je pense que si tu met un renderEvent dans la fonction eventReceive, eventAfterAllRender ne sera exécuté qu'après la fin d’exécution de eventReceive.(c'est ce qu'il te faut si je ne me trompes pas...)

  17. #17
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Salut,

    Désolé je n'ai pas donné de nouvelles depuis un petit moment, il fallait que je bosse sur autre chose.
    Bon j'ai essayé je n'arrive à rien.

    Effectivement, le eventAfterRender ou bien le eventRender se déclenche bien avant le eventAfterAllRender mais dans ces évènements il m'est impossible de supprimer l'évènement externe que je déplace sur le planning...

  18. #18
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Personne ?

    C'est mon dernier problème, après il me semble que ça tourne correctement.
    Merci d'avance

  19. #19
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Je n'ai toujours pas trouvé de solution, si quelqu'un passe dans le coin et a une idée, je suis preneur.

    Merci d'avance

  20. #20
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 563
    Par défaut
    bonsoir,
    avec une base de donnée nommée "developpeztests" qui contient une table "calendar" avec 3 champs id,name et active, JE PENSE que le résultat souhaité est atteint avec cet exemple.
    j'espère que ça t'aidera pour avance...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>FullCalendar Exemple</title>
    <style>
    .external-events {
            float: left;
            width: 150px;
            padding: 0 10px;
            border: 1px solid #ccc;
            background: #eee;
            text-align: left;
            margin-top:30px;
        }
    .external-listing .dragged{
        cursor:pointer;
    }
    </style>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.6/fullcalendar.min.css" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
    <script   src="https://code.jquery.com/jquery-3.1.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.6/fullcalendar.min.js"></script>
    <script src="https://code.jquery.com/ui/1.11.2/jquery-ui.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.9.0/lang-all.js"></script>
    <script>
    $(function() {
      var moment, date,donnee;
      $(".external").fullCalendar({
        droppable: true,
        editable: true,
        lang: "fr",
        drop: function(date, jsEvent) {
            donnee={id:$(this).data("event").id};
            $.ajax({
                url:"miseajour.php",
                type:"post",
                data:{id:donnee.id},
                dataType:"json",
                success:function(reponse){
                    console.log("reponse.id :"+reponse.id);// on reçois l'id qui a été modifié (envoyé par miseajour.php)
                    $(".external-listing p.dragged").each(function(){
                        if( $(this).length >0 && $(this).data("event").id==reponse.id){//on verifie que l'élément p.dragged ayant le data-id=reponse.id pour le supprimer.
                            $(this).remove();
                        }
                    });
                },
                error:function(e){alert("erreur AjaxOnDrop :"+e.responseText);}
            });
          console.log("Dropped on " + date.format() + " event :" + jsEvent.clientX + " event.id :" + $(this).data("event").id);
     
        },
        eventAfterAllRender: function(view) {
            moment = $(".external").fullCalendar('getDate');
            date = moment.format();
     
            $.ajax({
              url: "getData.php",
              type: "post",
              contentType: 'application/json; charset=utf-8',
              dataType: 'json',
              success: function(retour) {
                  $(".dragged,br").remove();
                  $.each(retour.name,function(i,value){
                    $(".external-listing")
                    .append("<p class='dragged' />")
                    .find('.dragged')
                    .eq(i)
                    .data("event",{
                                    "id": $(retour.id)[i],// retour.id envoyé par getData.php
                                    "stick": true,
                                    "title": "Evenement" +$(retour.id)[i]})
                    .text(value)
                    .draggable({
                        zIndex: 999,
                        revert: true, // autoriser l'element de revenir a sa place initiale
                        revertDuration: false //  temps original après libération de drag
                      });
                  });
                }, //fin success
                error:function(e){alert("erreur ajax :"+e.responseText);}
            }); //fin ajax
          } //fin eventAfterAllRender
     
      }); // fin $(".external").fullCalendar
     
    });
    </script>
    </head>
     
    <body>
    <div class="container">
        <div class="external-events col-xs-2">
        <h5>Liste Evenements :</h5>
            <div class="external-listing">
            </div>
        </div>
        <div class="external col-xs-10">
        </div>
    </div>
    </body>
    </html>
    getDate.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    try {
    		$bdd = new PDO('mysql:host=localhost;dbname=developpeztests', 'root', '');
    } catch(Exception $e) {
    		die('Erreur : '.$e->getMessage());
    }
    $name=array();
    $active=array();
    $id=array();
    $query="SELECT * FROM calendar where active=0"; 
    $resultats = $bdd->prepare($query);
    $resultats= $bdd->query($query);
     
    while($donnee=$resultats->fetch(PDO::FETCH_OBJ) ){
    array_push($name,$donnee->name);
    array_push($active,$donnee->active);
    array_push($id,$donnee->id);
    }
    $resultats->closeCursor();
    echo json_encode(array("name"=>$name,"active"=>$active,"id"=>$id));
    miseajour.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    $rep;
    if(isset($_POST['id']) ){
     
    try {
    		$bdd = new PDO('mysql:host=localhost;dbname=developpeztests', 'root', '');
    } catch(Exception $e) {
    		die('Erreur : '.$e->getMessage());
    }
    $query="update calendar set active=:act where id=:_id"; 
    $req=$bdd->prepare($query);      
    $req->execute(array(":act"=>'1',":_id"=>$_POST['id']));
    $rep=array("id"=>$_POST['id']);
    $req->closeCursor();
    }
    else
    {
    	$rep=array("id"=>"Rien n'a été envoyé !");
    }
    echo json_encode($rep);
    EDIT : j'ai pas remarqué qu'il y'a un fichier css pour FullCalendar, pour utiliser le plugin correctement il faut avoir une page web qui contient une div id='external-events' dans laquelle tu met un autre div id="external-events-listing" qui contiendra les événements extérieurs, puis un autre div id='calendar' qui contiendra le calendrier.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/01/2014, 14h24
  2. [fenetre à onglets] Intercepter les événements des panels
    Par Regis.C dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 14/04/2005, 10h50
  3. Choix dans les jointures externes
    Par WebPac dans le forum SQL
    Réponses: 2
    Dernier message: 21/01/2005, 12h34
  4. [COM] Comment utiliser les événements Word ?
    Par Laurent Dardenne dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 30/05/2004, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo