【问题标题】:Date of Birth drop downs in CakePHPCakePHP 中的出生日期下拉菜单
【发布时间】:2011-08-21 00:05:00
【问题描述】:

我想在 CakePHP 应用程序中为用户的出生日期创建三个选择框。

我该怎么做?我已经设法使用以下方法构建了一个男性或女性:

<?php echo $this->Form->input('gender', array('label' => '<strong>Gender</strong>', 'type' => 'select',
             'options' => array('Male'=>'Male','Female'=>'Female'))); ?>

但对于 DoB,我需要使用月、日和年预先填充字段。

有人可以帮忙吗?谢谢

【问题讨论】:

  • @Cameron - CakePHP 使用 PEAR HTML_QuickForms2 吗?
  • 你试过date input field吗?
  • 是的,它只是创建一个文本输入字段,而不是三个下拉菜单
  • 它应该创建三个下拉列表。数据库中有date类型的字段吗?
  • 为什么字段类型很重要?由于 Helper 应该只输出它应该输出的内容,而不管它连接到什么形式。也没有告诉它创建一个'type => select'那么为什么要创建一个?

标签: cakephp


【解决方案1】:

您只需要一个名为“生日”或任何类型为“日期”的数据库字段。

echo $this->Form->input('birthday');

就是这样

不过,我建议将 empty=>'- -' 添加到选项数组中。

我也使用 min 和 max 多年,这很有帮助:

'minYear'=>date('Y')-USER_AGE_MAX, 'maxYear'=>date('Y')-USER_AGE_MIN+1

而这两个常量是在我的引导程序中定义的。你也可以使用 Configure::write() 和 read() 。在我的情况下,最大值为 99,最小值为 9

对于“德语”形式,它会是

echo $this->Form->input('birthday', array('dateFormat'=>'DMY', 'minYear'=>date('Y')-USER_AGE_MAX, 'maxYear'=>date('Y')-USER_AGE_MIN+1, 'empty'=>array('- -')));

【讨论】:

  • 请参阅 Facebook.com/r.php 以了解我的意思的示例。我不想要文本框。
  • 上面的例子不会生成文本框。只要数据库字段类型是日期字段,它将生成与在 Facebook 注册页面上完全相同的内容。蛋糕就是这么聪明:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多