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

12voto

Ross Points 10658

Il suffit d'ajouter :

'selected'=>date('Y-m-d')

à votre tableau d'options.

Cet exemple affichera la date actuelle. Si vous avez besoin d'une date statique, remplacez-la selon vos besoins. par exemple :

'selected'=>'2011-12-10'

Évidemment pour la date et l'heure, utilisez :

'selected'=>date('Y-m-d H:i:s')

ou

'selected'=>'2011-12-10 11:13:45'

8voto

Ce chemin fonctionne:

Form->input(
    'Profile.dob', 
    array(
        'label'         => 'Date de naissance',
        'dateFormat'    => 'DMY',
        'minYear'       => date('Y') - 100,
        'maxYear'       => date('Y') - 13,
        'empty'         => array(
            'day'       => 'JOUR',
            'month'     => 'MOIS',
            'year'      => 'ANNEE'
            )
        )
    ); 
?>

2voto

Mo3z Points 1145

Si cela ne vous dérange pas 2 lignes supplémentaires, vous pouvez essayer de faire cela?

Form->year('Profile.dob', date('Y') - 100, date('Y') - 13, array('empty' => "YEAR"));
echo $this->Form->month('Profile.dob', array('empty' => "MONTH"));
echo $this->Form->day('Profile.dob', array('empty' => 'DAY'));

?>

2voto

Dashrath Points 434

J'ai implémenté cela comme ceci dans cakephp 2.0 ci-dessus

echo $this->Form->dateTime('dob', 'DMY','', array(
    'value'=>'1987-02-12',
    'empty'=>false,
    'label'=>'Date De Naissance',
    'minYear'=>date('Y')-60,
    'maxYear'=>date('Y')-15)
);

L'attribut 'value' a été ajouté après l'api 2.0 de cakephp et 'selected' est supprimé.

Le manuel de Cakephp dit : Le paramètre $selected a été supprimé de plusieurs méthodes de FormHelper. Toutes les méthodes prennent désormais en charge une clé $attributes['value'] qui doit être utilisée à la place de $selected. Ce changement simplifie les méthodes de FormHelper, réduit le nombre d'arguments et réduit la duplication créée par $selected. Les méthodes concernées sont :

FormHelper::select()
FormHelper::dateTime()
FormHelper::year()
FormHelper::month()
FormHelper::day()
FormHelper::hour()
FormHelper::minute()
FormHelper::meridian()

2voto

Eric VB Points 93

Aussi, êtes-vous vraiment sûr de ce que vous voulez vraiment dire?

Vous semblez confondre la valeur par défaut et la valeur vide. Si vous définissez la valeur par défaut comme JOUR MOIS ANNÉE en utilisant 'selected', votre code ne fonctionnera pas car JOUR MOIS ANNÉE n'est pas une date valide. Utiliser

'empty' => array(
  'day' => 'JOUR',
  'month' =>'MOIS',
  'year' =>'ANNÉE'
);

semble être ce que vous recherchez, invitant l'utilisateur à entrer une date.

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