5 votes

CakePHP Valeurs par défaut pour la sélection de date

J'ai un ensemble de sélecteurs pour une date de naissance :

Form->input('Profile.dob', array('label' => 'Date de naissance'
                                    , 'dateFormat' => 'DMY'
                                    , 'minYear' => date('Y') - 100
                                    , 'maxYear' => date('Y') - 13)); ?>

et je veux définir les valeurs par défaut comme étant les mots "JOUR MOIS ANNÉE" dans les sélecteurs.

J'ai réussi à le faire avec le genre avec :

Form->input('Profile.gender', array('label' => 'Genre', 'type' => 'select',
         'options' => array('Male'=>'Homme','Female'=>'Femme'),'empty'=>'Sélectionnez le sexe')); ?>

mais je ne vois pas comment le faire avec l'entrée de date automatique...

Quelqu'un peut-il aider ? Merci

0voto

Devon Points 43

Si les données de demande de date correspondantes sont nulles, Cakephp définit sélectionné sur la valeur vide, il suffit donc de la définir sur null avant d'afficher les champs de saisie de date :

$this->request->data['Profile']['dob'] = null;

echo $this->Form->month('Profile.dob', array('empty' => "MONTH"));
// faites de même pour l'année et le jour

la valeur vide (dans votre cas champs "DATE", "MONTH", "YEAR") sera pré-sélectionnée dans le formulaire de saisie

0voto

Eric VB Points 93

C'est ce qui fonctionne actuellement pour moi en cakephp 2.5:

echo $this->Form->input('fecha_pos_fijacion', array(
    'label' => 'Fecha de fijación',
    'dateFormat' => 'DMY',
    'minYear' => date('Y'),
    'maxYear' => date('Y')+5,
    'orderYear' => 'asc',
    'selected' => date('Y-m-1')
    )

);

C'est un peu plus élaboré, cela vous donnerait une valeur par défaut définie au 1er jour du mois en cours. Les valeurs possibles pour l'année sont entre l'année en cours et 5 ans à l'avance, affichées dans l'ordre croissant.

Encore plus complet:

echo $this->Form->input('fecha_transporte', array(
                    'label' => '',
                    'dateFormat' => 'DMY',
                    'minYear' => date('Y'),
                    'maxYear' => date('Y')+5,
                    'orderYear' => 'asc',
                    'selected' => date('Y-m-1', strtotime("+30 days"))
                    )
            );

Ici, la valeur par défaut est le 1er jour du mois suivant

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X