Page 1 sur 1

Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 15:10
par valmeras
Bonjour les gars. J'ai travail à faire mais je sais pas par ou commencer car je ne comprend pas grand à ce que je dois faire alors j'ai besoin de votre aide.
Voici le problème :


Sur la page 1, un formulaire avec une liste déroulante constituée ainsi :

trim I, 2012

trim II, 2012

trim III, 2012

trim IV, 2012

trim I, 2013

trim II, 2013

trim III, 2013

trim IV, 2013

trim I, 2014

trim II, 2014

trim III, 2014

trim IV, 2014

Lors du lancement de la page, elle est constituée dynamiquement de :

$trim_ob=array("trim I", "trim II", "trim III", "trim IV");

ET de 3 années : courante, suivante et dans 2 ans (c’est-à-dire pour 2012 : 2012,2013 et 2014). Si nous étions en 2014 : 2014,2015,2015.



Sur la page 2, tu récupère le résultat et tu l’édites au format date mysql standard :

Exemple si trim IV a été choisi, tu éditeras : 2012-12-31.

Le résultat est stocké dans la variable de session suivante : $_SESSION['fix_obj'][7]

Tu crées un lien pour revenir à la page 1.

Sur la page 1, si la variable $_SESSION['fix_obj'][7] est définie, la liste déroulante s’arrête sur le résultat choisi, à savoir pour notre exemple choisi ci-dessus : trim IV, 2012.

je compte sur vous les gars. merci

Re: Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 15:23
par moogli
heu ben la va falloir poser une question, parce que tous ceci n'est est pas une. ça ressemble plus à une réponse de forum non ?

@+

Re: Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 15:43
par valmeras
ok alors par quoi ou par ou dois-je commencer? car je suis un peu perbleue

Re: Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 16:28
par moogli
pour faire quoi ? :mrgreen: :mrgreen:

Re: Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 16:38
par valmeras
en fait je veux creer un formulaire avec une liste deroulante avec calendrier dynamique comme ceci : trim I, 2012

trim II, 2012

trim III, 2012

trim IV, 2012

trim I, 2013

trim II, 2013

trim III, 2013

trim IV, 2013

trim I, 2014

trim II, 2014

trim III, 2014

trim IV, 2014

Re: Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 17:15
par Mazarini
1) calcul du trimestre en fonction du mois en cours (cf fonction de date) : nombre 1, 2, 3 ou 4 ($courant) et calcul de l'annee ($année)
2) initialisation d'une chaine : $trimestre = array(1=>'trim I,2=>'trim II,...);
3) une boucle :
$liste = array();
for ($i=1;$i<15;$i++)
{
   $liste[] = $trimestre[$courant].','.$année;
   if ($courant == 4)
   {
      $courant = 1;
      $annee++;
   } 
   else
   {
      $courant++;
   }
} 

Re: Creation d'un calendrier trimestriel

Posté : 28 févr. 2012, 18:26
par valmeras
Merci.
et on peut integrer cela à un formulaire?

Re: Creation d'un calendrier trimestriel

Posté : 29 févr. 2012, 14:54
par dix2
salut,

Pour la page 1:
$ongoingYear = date('Y');

echo('<select name="quarter" size="1">');
$quarters =
  array(
    array('I',   31),
    array('II',  30),
    array('III', 30),
    array('IV',  31)
  );
for($i = $ongoingYear; $i <= $ongoingYear + 2; $i++){
  foreach($quarters as $numQuarter => $infoQuarter){
    $month = 3 * $numQuarter + 3;
    $formattedQuarter = $i.'-'.$month.'-'.$infoQuarter[1];
    echo('<option value="'.$formattedQuarter.'"');
    if(isset($_SESSION['fix_obj'][7]) && ($_SESSION['fix_obj'][7] == $formattedQuarter)){
      echo(' selected="selected"');
    };
    echo('>trim '.$infoQuarter[0].', '.$i.'</option>');
  };
};
echo('</select>');
Pour la page 2:
$_SESSION['fix_obj'][7] = $_POST['quarter'];
@+
dix2

Re: Creation d'un calendrier trimestriel

Posté : 03 mars 2012, 17:20
par valmeras
Merci beaucoup dix2 car ton code m'a beaucoup aidé.

Re: Creation d'un calendrier trimestriel

Posté : 04 mars 2012, 19:13
par valmeras
Bonsoir à tous

j'ai encore un autre problème que je n'arrive pas à resoudre.
voici mes deux codes :

page 1
<?php
session_start();
$date = date('Y');
?>

<form action='test2.php' method='POST'>
<select name='date_test' size='1'>

<?php
$trim_ob =
  array(
    array('I', 31),
    array('II', 30),
    array('III',30),
    array('IV', 31 )
  );
for($i = $date; $i <= $date + 2; $i++)
    {
  foreach($trim_ob as $cle => $valeur)
    {
    $mois = 3 * $cle + 3;
    $trimestre = $i.'-'.$mois.'-'.$valeur[1];
    echo('<option value="'.$trimestre.'"');

    echo('>Trim '.$valeur[0].', '.$i.'</option>');  
    };
    };
if(isset($_SESSION['fix_obj'][7]) && ($_SESSION['fix_obj'][7] == $trimestre))
    {
      echo('selected="selected"');
    };
?>
</select>
<input type='submit' value='Go' />
</form>
page 2
<?php
session_start();
$_SESSION['fix_obj'][7] = $_POST['date_test'];
echo $_SESSION['fix_obj'][7];
?>
<p><a href="test.php">Retour</a></p>
Sur la page 1, si la variable $_SESSION['fix_obj'][7] est définie, la liste déroulante s’arrête sur le résultat choisi, à savoir par exemple : si on a choisi trim IV, 2012 et que c'est ce qui est stocker dans $_SESSION['fix_obj'][7], lorque l'on revient sur la page 1 c'est trim IV, 2012 qui apparaitre dans la liste deroulante. Mais je n'arive pas à le faire or c'est la derniere etape de mon travail, alors j'ai besoin d'aide.

Re: Creation d'un calendrier trimestriel

Posté : 04 mars 2012, 20:02
par Ryle
L'attribut selected dans le code html que tu génères avec php doit être placé DANS la balise <option ... >, pas après le </option> ;)

Re: Creation d'un calendrier trimestriel

Posté : 04 mars 2012, 20:06
par valmeras
Merci beaucoup Ryle en fait je n'avais même pas remarqué ma bêtise. Encore merci car tu me sauve la vie :D