Creation d'un calendrier trimestriel

Eléphanteau du PHP | 37 Messages

28 févr. 2012, 15:10

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 févr. 2012, 15:23

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 ?

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 37 Messages

28 févr. 2012, 15:43

ok alors par quoi ou par ou dois-je commencer? car je suis un peu perbleue

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 févr. 2012, 16:28

pour faire quoi ? :mrgreen: :mrgreen:
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 37 Messages

28 févr. 2012, 16:38

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

ViPHP
ViPHP | 2577 Messages

28 févr. 2012, 17:15

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++;
   }
} 

Eléphanteau du PHP | 37 Messages

28 févr. 2012, 18:26

Merci.
et on peut integrer cela à un formulaire?

Eléphant du PHP | 267 Messages

29 févr. 2012, 14:54

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

Eléphanteau du PHP | 37 Messages

03 mars 2012, 17:20

Merci beaucoup dix2 car ton code m'a beaucoup aidé.

Eléphanteau du PHP | 37 Messages

04 mars 2012, 19:13

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mars 2012, 20:02

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> ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 37 Messages

04 mars 2012, 20:06

Merci beaucoup Ryle en fait je n'avais même pas remarqué ma bêtise. Encore merci car tu me sauve la vie :D