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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Calendrier] Probleme de fonctionnement


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2009
    Messages : 129
    Points : 69
    Points
    69
    Par défaut [Calendrier] Probleme de fonctionnement
    Bonjour,

    Je suis en train de tenter de mettre en place ce calendrier : http://j-seignalet.developpez.com/tu...jax/calendrier
    Le tuto est très bien fait mais j'ai tout de même un souci.

    La partie BDD ne pose pas de souci et j'ai même un affichage mais le calendrier est vide et ne m'affiche ni le mois en cours ni les numéros de jour comme dans l'exemple.
    Pour tester, j'ai télécharger la source mais j'ai le même souci.

    Ai je fais une erreur quelques part (surement)?

    Je teste avec easyphp si ça peut aider !

    Merci de votre aide
    KoRnicoti KoRnicota

    Mon site Starcraft II : tripsc2.lpdd.fr
    Ma mémoire wink : www.lpdd.fr

    Vous chercher de l'aide ?
    Ils sont au top --> http://chat.developpez.com/

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Bonjour,

    Moi j'ai une question avant tout... Comment veux-tu que l'on puisse t'aider sans même avoir une ligne?

    Même avec toute la bonne volonté qui m'habite, ça devient compliqué...
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2009
    Messages : 129
    Points : 69
    Points
    69
    Par défaut
    Salut,

    Merci de ton retour.

    Pour répondre à ta question, la source est dans le lien que j'ai indiqué ...
    Et comme je le disais, avec la source non modifié, je n'arrive pas à le faire fonctionner.

    Qu'as tu besoin de plus ?
    KoRnicoti KoRnicota

    Mon site Starcraft II : tripsc2.lpdd.fr
    Ma mémoire wink : www.lpdd.fr

    Vous chercher de l'aide ?
    Ils sont au top --> http://chat.developpez.com/

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Le tutoriel datant de 2007, je suppose que les composants utilisés sont/ont été actualisés et n'ont probablement plus la même manière de fonctionner.

    Ton code pourrait me permettre, à moi et aux autres, d'avoir peut-être une anomalie qui saute aux yeux. (Je doute que beaucoup de personne aillent farfouiller ton lien pour faire la correspondance entre ton topic et le tuto... )
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2009
    Messages : 129
    Points : 69
    Points
    69
    Par défaut
    Voici le fichier calendrier.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
    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
    106
    107
    108
    109
    110
    111
    112
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Exemple d'application AJAX avec openrico et prototype</title>
          <?php
          include("./conf/mysql.php");
          ?>
          <!-- Feuille de style -->
          <link rel="stylesheet" type="text/css" href="./css/calendrier.css">
     
          <!-- On inclut la librairie openrico / prototype -->
          <script src="./js/rico/src/prototype.js" type="text/javascript"></script>
          <!-- script pour gérer les bords arrondis et le panel déroulant -->
          <script src="./js/rico/src/rico.js" type="text/javascript"></script>
          <script src="./js/rico/src/ricoStyles.js" type="text/javascript"></script>
          <script src="./js/rico/src/ricoEffects.js" type="text/javascript"></script>
          <script src="./js/function.js" type="text/javascript"></script>
          <script src="./js/rico/src/ricoComponents.js" type="text/javascript"></script>
          <script type="text/javascript">
                  function roundMe() {
                           $$('div.conteneur').each(function(e){Rico.Corner.round(e)});
                  }
          </script>
     
     
     
    </head>
    <body>
     
          <!-- on crée l'élément "calendrier" dans lequel va s'afficher dynamiquement le calendrier-->
     
          <script>tableau(<?php echo date("m");?>,<?php echo date("Y");?>);</script>
          <div id="calendrier" class="conteneur calendrier" style="width:260px;background-color:#c6c3de;">
          <table class="tab_calendrier" align="center">
                 <tr><td class="titre_calendrier" colspan="7" width="100%"><a id="link_precedent" href="#"><img src="./images/previous.png"></a> <a id="link_suivant" href="#"><img src="./images/next.png"></a> <span id="titre"></span> </td></tr>
                 <tr>
                     <td  class="cell_calendrier" >
                     Lun
                     </td>
                     <td  class="cell_calendrier" >
                     Mar.
                     </td>
                     <td  class="cell_calendrier">
                     Mer.
                     </td>
                     <td  class="cell_calendrier">
                     Jeu.
                     </td>
                     <td  class="cell_calendrier" >
                     Ven.
                     </td>
                     <td  class="cell_calendrier">
                     Sam.
                     </td>
                     <td  class="cell_calendrier">
                     Dim.
                     </td>
     
                 </tr>
                 <?php
                 $compteur_lignes=0;
                 $total=1;
                 while($compteur_lignes<6){
                    echo '<tr>';
                    $compteur_colonnes=0;
                    while($compteur_colonnes<7){
                       echo '<td id="'.$total.'" class="cell_calendrier" >';
                       echo '</td>';
                       $compteur_colonnes++;
                       $total++;
                    }
                    echo '</tr>';
                    $compteur_lignes++;
                 }
                 ?>
          </table>
          </div>
     
          <div style="position: relative; width: 260px;">
              <div id="top-panel" style="background-color : #9791cb;position: relative;width: 260px;z-index: 1500;">
                  <a class="voir_plus" href="javascript:void(0);" id="code-button" onclick="PullDown.panel.toggle(); return false;">
                      + Voir les évènements
                  </a>
              </div>
              <div id="main-part">
              	<div id="outer_panel" class="panel-top" style="overflow: hidden; position: absolute; z-index: 1600;top: 19px; width: 260px;height: 132px;">
              		<div style="position: relative;top: 1px;background-color: #c6c3de;margin:0px;border: 1px solid #9791cb;" id="inner_panel">
              			    <div id="Evenements" style="height:150px">
                                        </div>
     
                            </form>
               	</div>
              </div>
          </div>
     
     
     
     
     
          <!-- Appel de la fonction qui va arrondir le conteneur du calendrier et des évènements pour le panel déroulant -->
          <script>
                  javascript:roundMe()
                  Event.observe(window, 'load', function(){
                       PullDown.panel = Rico.SlidingPanel.top( $('outer_panel'), $('inner_panel'));
                  })
                  var PullDown = {};
          </script>
          <br>
          <br>
    </body>
    </html>
    Voici le function.js

    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
    tableau = function(mois,annee)
    {
       var url = './ajax/ajax_calendrier.php';
       var parametres = 'mois=' + mois + '&annee=' + annee;
     
    		var myAjax = new Ajax.Request(
    			url,
    			{
    				method: 'get',
    				parameters: parametres,
    				onComplete: remplirCalendrier
    			}
    		);
    }
    function remplirCalendrier(reponsejson) {
           //on utilise la fonction evalJSON de prototype pour parser la réponse JSON
           var data=reponsejson.responseText.evalJSON();
           //On place les liens suivants,précédents et le mois en cours
           $('link_suivant').onclick=function(){eval(data.lien_suivant) ;};
           $('link_precedent').onclick=function(){eval(data.lien_precedent);};
           $('titre').innerHTML=data.mois_en_cours;
           //Maintenant, on affiche tous les jours du calendrier
           var compteur=1;
           var id='';
           while(compteur<43){
              id=compteur.toString();
              $(id).innerHTML=data.calendrier[(compteur-1)].fill;
              compteur++;
           }
     
     
     
     
    }
     
     
    function showEvent(date){
     
       var url = './ajax/ajax_commentaires.php';
       var parametres = 'date=' + date ;
     
    		var myAjax = new Ajax.Request(
    			url,
    			{
    				method: 'get',
    				parameters: parametres,
    				onComplete: remplirCommentaires
    			}
    		);
    }
     
     
    function remplirCommentaires(reponse){
             var commentaires=reponse.responseText;
             $('Evenements').innerHTML=commentaires;
             PullDown.panel = Rico.SlidingPanel.top( $('outer_panel'), $('inner_panel'));
             PullDown.panel.toggle();
    }
    Le ajax_calendrier.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
    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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <?php
         header('Content-Type: text/x-json; charset: UTF-8');
         //on se connecte à la bdd
         include("../conf/mysql.php");
         include("../conf/func_calendrier.php");
         //On récupère le mois et l'année pour le traitement
         $mois=$_GET['mois'];
         $annee=$_GET['annee'];
         ///////////////////////////////////////////////////////////////////////////////////
         //   on va formater ici un flux JSON qui va pouvoir etre lu par le js client.
         //   Format du JSON:
         //   {
         //      "mois_en_cours" : $mois_en_cours
         //      "lien_precedent" : $lien_vers_le_mois_precedent ,
         //      "lien_suivant" : $lien_vers_le_mois_suivant ,
         //      "calendrier": [
         //            {
         //
         //               "fill": $contenu_a_afficher //(rien, jour du mois ou jour
         //                                           //du mois avec lien
         //            },
         //                    ]
         //   }
         //
         //
         //
         ///////////////////////////////////////////////////////////////////////////////////
         //
         //                    On prépare le début du retour au format JSON
         ///////////////////////////////////////////////////////////////////////////////////
         $retour_json='';
         ///////////////////////////////////////////////////////////////////////////////////
         //On détermine d'abord les liens "suivant" "precedent" et le "mois en cours" du calendrier
         ///////////////////////////////////////////////////////////////////////////////////
         $mois=$_GET['mois'];
         $annee=$_GET['annee'];
         $retour_json='{';
         //mois en cours
         $mois_fr=getMois($mois);
         $titre=htmlentities($mois_fr." ".$annee,ENT_QUOTES);
         $retour_json.='"mois_en_cours" : "'.$titre.'" , ';
         //lien suivant
         $date_suivant=getSuivant($mois,$annee,1);
         $lien_suivant="tableau('".$date_suivant[mois]."','".$date_suivant[annee]."')";
         $retour_json.='"lien_suivant" : "'.$lien_suivant.'" , ';
         //lien précédent
         $date_precedent=getSuivant($mois,$annee,-1);
         $lien_precedent="tableau('".$date_precedent[mois]."','".$date_precedent[annee]."')";
         $retour_json.='"lien_precedent" : "'.$lien_precedent.'" , ';
     
     
         //Maintenant, on peut peupler le calendrier sous forme d'un tableau de 6 lignes * 7 colonnes
         //On crée notre tableau de 6semaines*7jours soit 42 éléments.
         //On récupère le jour qui démmarre le mois
         //ON va stocker tous les jours du mois dans un tableau tab_jours php
         $tab_jours=array();
     
         $num_jour=getFirstDay($mois,$annee);
         $compteur=1;
         $num_jour_courant=1;
     
         while($compteur<43){
         if($compteur<$num_jour){
              $tab_jours[$compteur]='';
         }else
         {
             //si la date existe, on affiche alors le jour dans la cellule du tableau
             if(checkdate($mois,$num_jour_courant,$annee)){
                  //On vérifie si un évènement a lieu ce jour ci
                  $date=$annee."/".$mois."/".$num_jour_courant;
                  $contenu='';
                  $requete="select * from evenements where evenement_date='".$date."'";
                  $ress=mysql_query($requete);
                  if($ress){
                      $nbre=mysql_num_rows($ress);
     
                      if($nbre>0){
                         //lien vers le script qui va déclencher l'affichage des évènement pour le jour donné
                         $lien='<a href=\'#\' onclick=\'showEvent(\\"'.$date.'\\");\'>'.$num_jour_courant.'</a>';
                         $tab_jours[$compteur]=$lien;
                      }else
                      {
     
                        $tab_jours[$compteur]=$num_jour_courant;
                      }
                      mysql_free_result($ress);
                  }
                  $num_jour_courant++;
     
             }else
             {
               $tab_jours[$compteur]='';
             }
     
         }
           $compteur++;
         }
     
         ///////////////////////////////////////////////////////////////////////////////////
         // Maintenant que l'on a notre tableau d'évènements pour chaque jour du mois
         // On finit de construire la réponse JSON
         ///////////////////////////////////////////////////////////////////////////////////
         if(!empty($tab_jours)){
            $retour_json.=' "calendrier" : [ ';
            $compteur=1;
            while($compteur<43){
               if($compteur==42){
                $retour_json.=' { "fill" : "'.$tab_jours[$compteur].'" } ';
               }else
               {
                $retour_json.=' { "fill" : "'.$tab_jours[$compteur].'" } , ';
               }
            $compteur++;
            }
            $retour_json.=' ] ';
         }
         $retour_json.=' } ';
     
         echo $retour_json;
     
    ?>
    et enfin le ajax_commentaire.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
    <?php
         header('Content-Type: text/html; charset: UTF-8');
         include("../conf/mysql.php");
         $date=$_GET['date'];
         $requete="select * from evenements where evenement_date='".$date."'";
         $ress=mysql_query($requete);
         $retour='';
         if($ress){
                   while($liste_evenements=mysql_fetch_assoc($ress)){
                      $retour.=htmlentities($liste_evenements[evenement_comment],ENT_QUOTES).'<br>';
                   }
                   //on affiche le retour dans la div dédiée à cet effet
                   echo $retour;
         }
    ?>
    Merci
    KoRnicoti KoRnicota

    Mon site Starcraft II : tripsc2.lpdd.fr
    Ma mémoire wink : www.lpdd.fr

    Vous chercher de l'aide ?
    Ils sont au top --> http://chat.developpez.com/

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Bonjour,

    As-tu une éventuelle erreur a recenser? Avec Firebug?
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ajax_calendrier.php ligne 44 et 46 il faut ajouter les ' aux index des tableaux : $date_suivant['mois'] et $date_suivant['annee']Même chose pour func_calendrier.php ligne 16 et 17.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2009
    Messages : 129
    Points : 69
    Points
    69
    Par défaut
    Yessss merci beaucoup

    Citation Envoyé par magicarpe44 Voir le message
    Bonjour,

    As-tu une éventuelle erreur a recenser? Avec Firebug?
    Non aucune erreur n’apparaît.

    Citation Envoyé par sabotage Voir le message
    Dans ajax_calendrier.php ligne 44 et 46 il faut ajouter les ' aux index des tableaux : $date_suivant['mois'] et $date_suivant['annee']Même chose pour func_calendrier.php ligne 16 et 17.
    En effet, comme ça, ça marche déjà beaucoup mieux
    Il y avait aussi le même souci dans ajax_commentaire.


    Maintenant ça fonction par contre j'ai juste une autre question : est ce normal que la génération de la page prend plus de 4s ?

    Nom : TempChargCalendrier.png
Affichages : 151
Taille : 23,6 Ko

    Merci à vous
    KoRnicoti KoRnicota

    Mon site Starcraft II : tripsc2.lpdd.fr
    Ma mémoire wink : www.lpdd.fr

    Vous chercher de l'aide ?
    Ils sont au top --> http://chat.developpez.com/

  9. #9
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2009
    Messages : 129
    Points : 69
    Points
    69
    Par défaut
    C'etait mon PC qui ramait ...

    Merci encore.

    Je passe en resolu
    KoRnicoti KoRnicota

    Mon site Starcraft II : tripsc2.lpdd.fr
    Ma mémoire wink : www.lpdd.fr

    Vous chercher de l'aide ?
    Ils sont au top --> http://chat.developpez.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Javamail probleme de fonctionnement
    Par La_Bande_A_Zozo dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/09/2007, 05h08
  2. Probleme flash fonctionne sous IEpas avec firefox !!!
    Par lthomas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/05/2006, 12h31
  3. Réponses: 2
    Dernier message: 20/03/2006, 17h29
  4. Réponses: 15
    Dernier message: 23/05/2005, 17h08
  5. [easystruts] Probleme de fonctionnement
    Par VinceFromBcn dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 14/01/2005, 12h27

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