IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Liste déroulante de mois et d'années


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 83
    Points
    83
    Par défaut Liste déroulante de mois et d'années
    Bonjour,

    J'essaye d'afficher deux liste déroulante sur un formulaire de filtre, la première contient la liste des mois et la deuxième contient une liste d'année (ex: de 2011 à 2014).

    J'ai un ajouté le code suivant dans le formbuilder, mais je ne sais pas trop comment m y prendre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            $months = array('1','2','3','4','5','6','7','8','9','10','11','12');
            $builder->add('periode_start', 'choice', array(
                'label' => 'Date de début',
                'choice_list' => new MonthChoiceList(\IntlDateFormatter::SHORT , $months),
                'required' => false
            ));
    Merci pour votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Responsable applications intranet
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable applications intranet
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Salut,

    Quel est ton résultat espéré ? As-tu vraiment besoin d'un MonthChoiceList ? Car en mettant simplement les mois dans le choiceType cela devrait suffire, le MonthChoiceList étant plus spécifique à un réel objet Date.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable applications intranet
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable applications intranet
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Sinon voici qqch de fonctionnel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    use Symfony\Component\Form\Extension\Core\ChoiceList\MonthChoiceList;
     
    class TestType extends AbstractType
    {
        public function buildForm(FormBuilder $builder, array $options)
        {
        	$formatter = new \IntlDateFormatter(
                \Locale::getDefault(),
                null,
                \IntlDateFormatter::SHORT,
                \DateTimeZone::UTC,
                \IntlDateFormatter::GREGORIAN
            );
        	$months = range(1,12);
            $builder->add('periode_start', 'choice', array(
                'label' => 'Date de début',
                'choice_list' => new MonthChoiceList($formatter, $months),
                'required' => false
            ));
    Biensur il te faudra rajouter periode_start à ton objet...

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 83
    Points
    83
    Par défaut
    Merci, pour ta réponse,
    en fait ce que je veux, c'est juste afficher une liste déroulante qui contient la liste des mois et de pouvoir récupérer le mois sélectionné dans le filtre, ce que j'ai fait et ça marche (ce n'est pas la meilleure solution ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
          $formatter = new \IntlDateFormatter(
                            \Locale::getDefault(),
                            1,
                            \IntlDateFormatter::NONE,
                            \DateTimeZone::UTC
            ); 
       $months = array('01'=>'Janvier','02'=>'Février','03'=>'Mars','04'=>'Avril','05'=>'Mai',
    '06'=>'Juin',                   '7'=>'Juillet','08'=>'Août','09'=>'Septembre','10'=>'Octobre','11'=>'Novembre','12'=>'Décembre');       
            $builder->add('mois_start', 'choice', array(
                'label' => 'Début',
                'choice_list' => new MonthChoiceList($formatter, months),
                'required' => false
            ));*/
    Est ce que tu as une solution plus simple?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable applications intranet
    Inscrit en
    Août 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable applications intranet
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    As-tu essayé le code que je t'ai donné? Si oui tu remarqueras que en utilisant un ChoiceMonthList, tu ne dois pas spécifier tout l'array, juste les 1 à 12.

    Donc un range(1,12) fait l'affaire! Et en plus en faisant juste comme cela, il t'affichera les mois en fonction de la langue

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 83
    Points
    83
    Par défaut
    Oui j'ai essayé ton code mais il me génère une erreur

    Notice: Undefined index: in E:\xampp\htdocs\shiva3\vendor\symfony\src\Symfony\Component\Locale\Stub\StubIntlDateFormatter.php line 441
    C'est du au null dans le constructeur du $formatter, si non si je met 1 ça marche mais il m'affiche le numéro du mois (01,02,03....).

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/08/2009, 19h53
  2. affichage liste déroulante d'années
    Par Laulau_91 dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2009, 16h03
  3. Réponses: 0
    Dernier message: 13/09/2007, 08h33
  4. [Dates] Liste déroulante date et années bissextiles
    Par Jiraiya42 dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2007, 00h04
  5. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo