Gestion d'évènement
Posté : 28 juil. 2014, 18:23
Bonjour,
Je suis le développeur du site internet d'une petite association canine, et je souhaite réaliser une page afin de gérer la planification de nos moniteurs en fonction des 3 cours (EC, N1 et N2) réalisé chaque samedi.
Pour cela j'ai donc réalisé une page ou je récupère toutes les dates des samedi de l'année en cours.
J'ai également créer une table dans ma base de donnée avec une listes de l’ensemble des moniteurs. (géré directement via la base de données pour l'instant).
J'ai également créer une table dans ma base de donnée avec les événements avec 1 champ id, un champ niveau (cours -> EC N1 N2), un champ moniteur et 1 champ date)
J'ai ajouté quelques valeurs que j'arrive maintenant à afficher dans mon tableau.
Par contre je bloque sur la façon d'ajouter un moniteur lorsque l'on clique sur la case correspondant a un niveau en fonction d'une date.
Par exemple:
Pour le Sam 01/02/2014 dans le niveau EC si on clique je voudrais que l'on puisse choisir parmi une liste déroulante (ou autre méthode) de tous nos moniteurs récupérés via la base de donnée.
Et il m'affiche ainsi le moniteur choisit en noir. ( En vert rayé sont les moniteurs qui était désigné dans dans 1er temps mais qui se sont fait remplacer.)
Pour faire plus simple voici le lien vers la page développée:
Voici le lien vers le début de cette page:
http://clubcanin.redene.free.fr/php/pla ... /index.php
Et voici également le code source:
Si quelqu'un de généreux à une petite piste à m'offrir se serait super.
Merci
Je suis le développeur du site internet d'une petite association canine, et je souhaite réaliser une page afin de gérer la planification de nos moniteurs en fonction des 3 cours (EC, N1 et N2) réalisé chaque samedi.
Pour cela j'ai donc réalisé une page ou je récupère toutes les dates des samedi de l'année en cours.
J'ai également créer une table dans ma base de donnée avec une listes de l’ensemble des moniteurs. (géré directement via la base de données pour l'instant).
J'ai également créer une table dans ma base de donnée avec les événements avec 1 champ id, un champ niveau (cours -> EC N1 N2), un champ moniteur et 1 champ date)
J'ai ajouté quelques valeurs que j'arrive maintenant à afficher dans mon tableau.
Par contre je bloque sur la façon d'ajouter un moniteur lorsque l'on clique sur la case correspondant a un niveau en fonction d'une date.
Par exemple:
Pour le Sam 01/02/2014 dans le niveau EC si on clique je voudrais que l'on puisse choisir parmi une liste déroulante (ou autre méthode) de tous nos moniteurs récupérés via la base de donnée.
Et il m'affiche ainsi le moniteur choisit en noir. ( En vert rayé sont les moniteurs qui était désigné dans dans 1er temps mais qui se sont fait remplacer.)
Pour faire plus simple voici le lien vers la page développée:
Voici le lien vers le début de cette page:
http://clubcanin.redene.free.fr/php/pla ... /index.php
Et voici également le code source:
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Calendrier</title>
<link rel="stylesheet" href="style.css">
<script type="text/javascript" src=" http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<?php
//Connexion à la base de donnée
// On récupère la liste des moniteurs dans la base de donnée
$requete="SELECT surnom FROM liste_moniteurs ORDER BY surnom ASC";
$exec2=mysql_query($requete);
$surnomliste=array();
while ($ligne2 = mysql_fetch_array($exec2)) {
$surnom=$ligne2['surnom'];
array_push($surnomliste,$surnom);}
print_r($surnomliste);
// on récupère les données moniteur et niveau pour chaque date
$requete="SELECT * FROM planning_moniteurs";
$exec=mysql_query($requete);
while($ligne=mysql_fetch_array($exec)):
// On affiche les information du planning
$niveau=$ligne['niveau'];
$moniteur=$ligne['moniteur'];
$date=$ligne['date'];
$r[$date][$niveau] = $moniteur;
//echo 'affichage données:'.$niveau.'-'.$moniteur.'-'.$date.'<br />';
endwhile;
$date = new Date();
$year = date('Y');
$dates = $date->getAll($year);
?>
<div class="clear"></div>
<div class="periods">
<form>
<table class="calendrier">
<caption class="year">
<?php foreach ($dates as $année => $valeur1):
echo $année; ?>
</caption>
<thead> <!-- En-tête du tableau -->
<tr>
<div class="month">
<?php foreach ($valeur1 as $cle2 => $valeur2): ?>
<th class="month"><?php echo (mb_substr($months[$cle2-1],"utf8")); // Affiche le mois en toutes lettres ?></th>
</div>
</tr>
</thead>
<tbody> <!-- Corps du tableau -->
<tr>
<td> Poste</td>
<td> EC</td>
<td> N1</td>
<td> N2</td>
</tr>
<?php foreach ($valeur2 as $cle3 => $valeur3): ?>
<?php
$dd='';
$mm='';
if($cle3<10): $dd=0; endif;//si le jour est <10 alors $dd=0 sinon $dd=''
if($cle2<10): $mm=0; endif;//si le jour est <10 alors $mm=0 sinon $mm=''
?>
<tr>
<td>
<?php
//on affiche tous les samedis et leur dates en ajoutant les 0 si <10
echo'Sam '.$dd.''.$cle3.'/'.$mm.''.$cle2.'/'.$année;
//on récupère la valeur de la date affichée au format de la base de donnée
$datea=$année.'-'.$mm.''.$cle2.'-'.$dd.''.$cle3;
?>
</td>
<td>
<ul>
<?php
//on initialise les 2 variables de comptage
$n='EC';
$v1=0;
$v2=0;
foreach($r as $datep => $r1){
if ($datep==$datea){
foreach($r1 as $niveau => $moniteur){if (substr($niveau,0,2)==$n){$v2++;}//on compte le nb de réponse pour moniteur dans ec à la date du jour
}}
}
//on récupère l'array avec l'ensemble des données de la bdd
foreach($r as $datep => $r1)
{
//si la date affichée est égal à la date de la bdd on continu
if ($datep==$datea){
//si le niveau commence par EC on affiche les moniteurs
foreach($r1 as $niveau => $moniteur)
{
if (substr($niveau,0,2)==$n){
$class='none';
if ($v2-1!=$v1){$class='line-through';}// on compare la valeur v1 à v2 et on affiche la class barré si elles sont différentes
echo '<li class="'.$class.'">'.$moniteur.' </li>';$v1++;}
}
}
}
?>
</ul>
</td>
<td>
<?php
//on initialise les 2 variables de comptage
$n='N1';
$v1=0;
$v2=0;
foreach($r as $datep => $r1){
if ($datep==$datea){
foreach($r1 as $niveau => $moniteur){if (substr($niveau,0,2)==$n){$v2++;}//on compte le nb de réponse pour moniteur dans ec à la date du jour
}}
}
//on récupère l'array avec l'ensemble des données de la bdd
foreach($r as $datep => $r1)
{
//si la date affichée est égal à la date de la bdd on continu
if ($datep==$datea){
//si le niveau commence par EC on affiche les moniteurs
foreach($r1 as $niveau => $moniteur)
{
if (substr($niveau,0,2)==$n){
$class='none';
if ($v2-1!=$v1){$class='line-through';}// on compare la valeur v1 à v2 et on affiche la class barré si elles sont différentes
echo '<li class="'.$class.'">'.$moniteur.' </li>';$v1++;}
}
}
}
?>
</td>
<td>
<?php
//on initialise les 2 variables de comptage
$n='N2';
$v1=0;
$v2=0;
foreach($r as $datep => $r1){
if ($datep==$datea){
foreach($r1 as $niveau => $moniteur){if (substr($niveau,0,2)==$n){$v2++;}//on compte le nb de réponse pour moniteur dans ec à la date du jour
}}
}
//on récupère l'array avec l'ensemble des données de la bdd
foreach($r as $datep => $r1)
{
//si la date affichée est égal à la date de la bdd on continu
if ($datep==$datea){
//si le niveau commence par EC on affiche les moniteurs
foreach($r1 as $niveau => $moniteur)
{
if (substr($niveau,0,2)==$n){
$class='none';
if ($v2-1!=$v1){$class='line-through';}// on compare la valeur v1 à v2 et on affiche la class barré si elles sont différentes
echo '<li class="'.$class.'">'.$moniteur.' </li>';$v1++;}
}
}
}
?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<?php endforeach; ?>
<?php endforeach; ?>
</table>
</body>
</html>
Si quelqu'un de généreux à une petite piste à m'offrir se serait super.
Merci