2011-05-11 91 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 --', 
    ) 
));