Liste deroulante avec les trimestres

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Liste deroulante avec les trimestres

Re: Liste deroulante avec les trimestres

par xTG » 13 juil. 2012, 19:02

Récupérer le trimestre posté pour pouvoir le comparer aux autres et interdire certains choix ? :roll:
Dans tous les cas il te faut récupérer cette information si tu veux faire quoi que ce soit.

Re: Liste deroulante avec les trimestres

par valmeras » 13 juil. 2012, 16:41

Et quel serait l'interêt?

Re: Liste deroulante avec les trimestres

par xTG » 13 juil. 2012, 16:03

Un petit exemple :
$chaine = "12:php:france";
$array = explode(':', $chaine);
foreach($array as $string)
  echo $string . '<br />';
12
php
france

Re: Liste deroulante avec les trimestres

par valmeras » 13 juil. 2012, 15:29

Comment? je ne te comprend pas.

Re: Liste deroulante avec les trimestres

par xTG » 13 juil. 2012, 15:13

Utilises explode() dans ce cas sur le caractère "-" ;)

Re: Liste deroulante avec les trimestres

par valmeras » 13 juil. 2012, 14:41

Merci. Mais peux-tu m'aider à faire le code car je ne maitrise pas trop bien les REGEX.

Re: Liste deroulante avec les trimestres

par xTG » 12 juil. 2012, 22:01

Euh d'accord... Je vois pas tellement l'intérêt d'interdire à l'utilisateur toute modification de ses choix mais soit. (il devra pas se tromper pis c'est tout)
Tu peux découper à coup d'expression régulière la valeur sauvegardée pour extraire la valeur du trimestre.
Et comme tu utilises une notation I, II et III il te suffit de compter le nombre de caractère pour avoir la correspondance chiffrée.
A partir de là la comparaison est simple. ;)

Re: Liste deroulante avec les trimestres

par valmeras » 12 juil. 2012, 21:38

En fait quand on clique sur le bouton OK, le trimestre choisi est enregistreé normalement et quand on revient en arrière, le trimestre qu'on a choisi s'affiche. Si on a choisi par exemple Trim III, 2012 on qu'on clique sur OK, trim III, 2012 est enregistré. Ensuite si on revient en arrière, Trim III, 2012 doit être affiché et Trim I, 2012 et Trim II, 2012 ne doivent plus apparaître. Je ne sais pas si j'ai été clair.
Merci

Re: Liste deroulante avec les trimestres

par xTG » 12 juil. 2012, 21:08

4 trimestres ? Cela ne fait pas un peu beaucoup ? :D

Pourrais-tu détailler ton problème ? Car je ne comprends pas.
L'utilisateur sélectionnes un trimestre et ensuite il retombes sur un formulaire semblable lui demandant d'en sélectionner un autre ?
C'est pour faire date de début / date de fin en gros ?

Liste deroulante avec les trimestres

par valmeras » 12 juil. 2012, 19:12

Bonjour a tous,

J'ai un problème et j'ai besoin de votre aide. Voila j'ai une liste déroulante avec les trimestres et je voudrais que, lorsqu'on choisit par exemple Trim II, 2012, il faudrait supprimer Trim I, 2012. SI c'est Trim III, 2012 qui est choisit, Trim I, 2012 et Trim II, 2012 doivent être supprimer. En effet, il faut pas que l’utilisateur puisse choisir une échéance dans le passé.

Voici les scripts que j'ai fait :
<?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++)  // Détermination de la date courante + 2 ans
    {
  foreach($trim_ob as $cle => $valeur)
    {
    $mois = 3 * $cle + 3;     // Determination du nombre de mois formant les trimestres
    $trimestre = $i.'-'.$mois.'-'.$valeur[1];
    echo '<option value="'.$trimestre.'"';

    if($_SESSION['fix_obj'][7] == $trimestre) // Si $_SESSION['fix_obj'][7] est définie ...
    {
      echo 'selected="selected"';
    };

    echo '>Trim '.$valeur[0].', '.$i.'</option>';  // $valeur[0] contient les strings stockés dans $trim_ob soit I, II, III et IV
    };
    };

?>
</select>
<input type='submit' value='Go' />
</form>
Et voici le second script qui est inclut dans le précédent :
<?php
session_start();
$_SESSION['fix_obj'][7] = $_POST['date_test'];
echo $_SESSION['fix_obj'][7];
?>
<p><a href="test.php">Retour</a></p>
Merci