2014-09-05 88 views
0

我想在cakephp 2.x中的顶部填充下拉日期字段。如何在cakephp中填充下拉菜单?

我的日期格式为1987年7月5日,但在使用CakePHP的日期我。

echo $this->form->input('birthday', array(
'type' => 'date', 
'id' => 'birthday', 
'required' => false, 
'empty' => array(
    'month' => 'Month', 'day' => 'Day', 'year' => 'Year' 
    ), 
'id' => 'birthday', 
'minYear' => date('Y') - 16, 
'maxYear' => date('Y') - 60, 
'label' => FALSE, 
'style'=>'width:100px', 
'value'=>$getProfile['Performer_detail']['birthday'] 
)); 

有了上面的代码,我得到3个下拉字段:MonthDayYear:我也越来越在$getProfile['Performer_detail']['birthday']1987-07-05但没有选择这3个领域。

请帮帮我。

+1

不要使用“价值”,尽最大努力使控制器填充正确的价值观下拉。见[这里](http://www.dereuromark.de/2010/06/23/working-with-forms/#default-values)。 – mark 2014-09-05 15:04:25

+0

必须澄清你的问题。 – Dave 2014-09-05 17:05:20

+0

@mark我得到了我的答案。价值必须在那里。请检查Chinu答案:)对我来说它工作正常。 – Developer 2014-09-29 04:49:40

回答

0

使用此代码 -

<?php echo $this->form->dateTime(
'birthday', 'MDY','', array(
    'id'=>'birthday','value'=>$getProfile['Performer_detail']['birthday'], 'empty' => array('month' => 'Month', 'day' => 'Day', 'year' => 'Year'),'label'=>'','minYear'=>date('Y')-16,'maxYear'=>date('Y')-60 
) 
);?> 
0

我粘贴的演示,了解CakePHP的日期输入字段。

table: users 
    id   int 
    name  varchar 
    birthday date 

add.ctp

<?php 
echo $this->Form->create(); 
echo $this->Form->input('name'); 
echo $this->Form->input('birthday',array('dateFormat' => 'YDM')); 
echo $this->Form->end(); 
?> 

表格看起来像这样,注意values.It会默认显示当前日期。

enter image description here

我加入了一个纪录名称凯文和日期2019-5九月。现在这是我编辑同一记录

enter image description here

edit.ctp

<?php 
echo $this->Form->create(); 
echo $this->Form->input('name'); 
echo $this->Form->input('birthday',array('dateFormat' => 'YDM')); 
echo $this->Form->input('id', array('type' => 'hidden')); 
echo $this->Form->end('submit'); 
?> 

As你可以在文件add.ctp和edit.ctp文件中看到,我没有为生日添加额外的值。如果你已经正确地遵循cakephp约定,那么Cakephp会自动填充编辑表单中的字段数据。因此,无需添加在$getProfile['Performer_detail']['birthday']