2011-05-11 189 views
3

我有我的看法如下代码:CakePHP的表单辅助输入日期

$this->Form->input('born'); 

哪个日期字段,我看,看它是否有可能有像每一个选择框不同的空文本:[Month | v] [Day | v] [Year | v]。

有没有人遇到过这样做?很多帮助表示赞赏。

+0

你应该总是说明该框架的版本,因为答案将取决于这一点。 – 2015-09-24 19:04:33

回答

5

你可以做这样的事情:

echo $this->Form->input('born', array('label' => 'Date of birth', 
    'dateFormat' => 'DMY', 
    'minYear' => date('Y') - 70, 
    'maxYear' => date('Y') - 18)); 

他们将是下拉列表不是空的文本字段。你可以阅读更多有关表单助手和AUTOMAGIC形式在这里:

http://book.cakephp.org/#!/view/1390/Automagic-Form-Elements

3

我已使出使用jQuery更新蛋糕空的日期值

蛋糕:

echo $this->Form->input('born', array('label' => 'Date of birth', 
    'dateFormat' => 'DMY', 
    'minYear' => date('Y') - 70, 
    'maxYear' => date('Y') - 18, 
    'empty' => true 
)); 

jQuery的:

$(function() { 
    $('.input.date select[name$="[day]"] option[value=""]').html('-- Day --'); 
    $('.input.date select[name$="[month]"] option[value=""]').html('-- Month --'); 
    $('.input.date select[name$="[year]"] option[value=""]').html('-- Year --'); 
}); 
2
echo $this->Form->input('born', array('label' => 'Date of birth', 
             'type'=>'date', 
             'dateFormat'=> 'DMY', 
             'minYear' => date('Y') - 70, 
             'maxYear' => date('Y') - 18)); 
0

如果你可以离开输入栏,试试这个:

echo $this->Form->input('born', array('empty' => true));

如果没有,检查这个答案:https://stackoverflow.com/a/11610483/1001673

这是一个有点哈克,但它会做你想要世界卫生大会。

0

这个作品构成了我(CakePHP的2倍)

echo $this->Form->input('born', array('label' => 'Date of birth', 
    'dateFormat' => 'DMY', 
    'minYear' => date('Y') - 70, 
    'maxYear' => date('Y') - 18, 
    'empty' => array(
     'day' => '-- Day --', 'month' => '-- Month --', 'year' => '-- Year --', 
    ) 
));