Bonjour,

J'ai dernièrement suivit un des tuto de ce site, concernant le calendrier en php et Javascript. J'ai cependant rencontrer un problème en le terminant. Sans doute lier au code javascript. Le tableau s'affiche parfaitement, mais lorsque je clic sur un autre moi, l'animation se fait mais le nouveau tableau n'apparaît pas. N'ayant pas de connaissances poussé en PHP et Javascript, j'aurais souhaité savoir si vous aviez une idée d'ou peu bien provenir l'erreur.

De peur de m'être trompé en recopiant le code javascript, j'ai copier /coller celui de la démo, et j’obtiens le même problème.

merci pour votre aide.

7 réponses


Bonjour,

Sans voir ton code il me semble complique de pouvoir te dire ou pourrais se trouver l'erreur.

Romain

Bonjour.
Pour commencer, utilises l'inspecteur de ton navigateur pour vérifier s'il ne t'indique pas d'erreur au niveau du javascript.
Ensuite si c'est le cas, soit tu comprends l'erreur et tu la corriges ou alors tu nous la montre et comme te l'as dit Romain Chevalier, montres nous un peu ton code, sinon nous ne pouvons pas deviner où ton problème peut se situer (j'ai bien dit le code de ta page, ne nous renvois pas sur le code du tutoriel).

Bonjour,

Je me permets de faire remonter le topic pour un problème similaire.
Apparemment je ne suis pas le seul vu les commentaires.

<?php $DB = new PDO ('mysql:host=localhost;dbname=insectelevage','root','',array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8')); ?>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> 
<script type="text/javascript"> 

jQuery(function($){
var date = new Date();
var current = date.getMonth()+1;
$('.month').hide();
$('#month'+current).show();
$('.months a#linkMonth'+current).addClass('active');
$('.months a').click(function(){
var month = $(this).attr('id').replace('linkMonth','');
if(month != current){
$('#month'+current).slideUp();
$('#month'+month).slideDown();
$('.months a').removeClass('active'); 
$('.months a#linkMonth'+month).addClass('active'); 
current = month;
}
return false; 
}); 
}); </script>

                <?php 
                require('date.php');
                $date = new Date();
                $year = date('Y');
                $events = $date->getEvents($year);
                $dates = $date->getAll($year);
                ?>

                <div class="periods">
                    <div class="year">
                    <?php echo $year; ?>
                        <div class="months">
                        <ul>
                        <?php foreach ($date->months as $id=>$m): ?>
                        <li><a href="" id="linkMonth"><?php echo utf8_encode(substr(utf8_decode($m),0,3)); ?></a></li>
                        <?php endforeach; ?>
                        </ul>
                        </div>
                    </div>
                    <div class="clear"></div>
                    <?php $dates = current($dates); ?>
                    <?php foreach ($dates as $m=>$days): ?>
                    <div class="month" id="month<?php echo $m; ?>">
                    <table>
                        <thead>
                            <tr>
                            <?php foreach ($date->days as $d): ?>
                            <th><?php echo substr($d,0,3); ?></th>
                            <?php endforeach; ?>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                            <?php $end = end($days); foreach ($days as $d=>$w): ?>
                                <?php $time = strtotime("$year-$m-$d"); ?>
                                <?php if($d == 1): ?>
                                    <td colspan="<?php echo $w-1; ?>" class="padding"></td>
                                <?php endif ;?>
                                <td <?php if($time == strtotime(date('Y-m-d'))): ?> class="today"><?php endif; ?>
                                <div class="relative">
                                <div class="day">
                                <?php echo $d; ?>
                                </div>
                                </div>
                                <div class="daytitle">
                                    <?php echo $date->days[$w-1]; ?><?php echo $d; ?><?php echo $date->months[$m-1]; ?>
                                </div>
                                <ul class="events">
                                    <?php if(isset($events[$time])): foreach ($events[$time] as $e): ?>
                                    <li><?php echo $e; ?></li>
                                    <?php endforeach; endif; ?>
                                </ul>
                                </td>
                                <?php if($w == 7): ?>
                                </tr>
                                <tr>
                                <?php endif; ?>
                            <?php endforeach; ?>
                            <?php if($end != 7): ?>
                            <td colspan="<?php echo 7-$end; ?>" class="padding2"></td>                          
                            <?php endif; ?>
                            </tr>
                        </tbody>
                    </table>
                    </div>
                    <?php endforeach; ?>
                </div>              

                <?php include('include/footer.php'); ?>         

            </div>
        </div>

date.php

<?php 
class Date{

    var $days = array('Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche');
    var $months = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');

    function getEvents($year){
        $DB = new PDO ('mysql:host=localhost;dbname=insectelevage','root','',array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8')); 
        $req = $DB->query('SELECT id, title, date FROM events WHERE YEAR(date)='.$year);
        $r = array();
        while ($d = $req->fetch(PDO::FETCH_OBJ)){
        $r[strtotime($d->date)][$d->id] = $d->title;
        }
        return $r;
    }

    function getAll($year){
        $r = array();   
        $date = new DateTime($year.'-01-01');
        while($date->format('Y')<= $year){
        //$r[ANNEE][MOIS][JOUR] = Jour de la semaine
        $y = $date->format('Y');
        $m = $date->format('n');
        $d = $date->format('j');
        $w = str_replace('0','7',$date->format('w'));
        $r[$y][$m][$d] = $w;
        $date->add(new DateInterval('P1D'));
        }
        return $r;

    }
}
?>

Bonsoir

Je me permets de faire remonter le topic pour un problème similaire.

Si tu ne nous décrit pas ton problème, nous ne pouvons pas le deviner.

Le problème est exactement pareil

As-tu regardé au niveau de l'inspecteur s'il n'y a pas de retour d'erreur pour le javascript ?

As-tu un bon lien qui m'indiquerait comment vérifier cela ?