【问题标题】:CakePHP Form Helper input dateCakePHP 表单助手输入日期
【发布时间】:2011-05-11 15:27:12
【问题描述】:

我认为有以下代码:

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

这是一个日期字段,我正在查看是否可以为每个选择框设置不同的空文本,例如:[Month |v][Day |v][Year |v]。

有人遇到过这种情况吗?非常感谢您的帮助。

【问题讨论】:

  • 你应该总是说明框架的版本,因为答案取决于那个。

标签: cakephp date input


【解决方案1】:

你可以这样做:

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

它们将是下拉菜单,而不是空文本字段。您可以在此处阅读有关表单助手和自动表单的更多信息:

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

【讨论】:

    【解决方案2】:

    我已经求助于使用 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 --');
    });
    

    【讨论】:

      【解决方案3】:
      echo $this->Form->input('born', array( 'label' => 'Date of birth',
                                             'type'=>'date',
                                             'dateFormat'=> 'DMY',
                                             'minYear' => date('Y') - 70,
                                             'maxYear' => date('Y') - 18 ));
      

      【讨论】:

        【解决方案4】:

        这对我有用(CakePHP 2x)

        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 --',
           )
        ));
        

        【讨论】:

          【解决方案5】:

          如果您可以将输入留空,请尝试以下操作:

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

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

          这有点老套,但它会做你想做的事。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多