如何在joomla中以注册形式创建选择框。
我尝试使用动态在我的注册表单中添加birthyear。
1950年到当前年份的选项值。如何使用循环或动态代码添加年份。
这是我的代码。
<field name="joinyear" type="list"
description="COM_USERS_REGISTER_JOINYEAR_LABEL"
filter="string"
label="COM_USERS_REGISTER_JOINYEAR_DESC"
message="COM_USERS_REGISTER_JOINYEAR_DESC"
required="true">
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
.
.
.
.
.
<option value="1950">1950</option>
</field>
答案 0 :(得分:2)
其实我建议你创建自己的列表类型: 创建一个目录/models/fields/year.php,它将扩展/libraries/joomla/form/fields/list.php中定义的JFormFieldList类
并添加以下代码:
<?php
defined('JPATH_PLATFORM') or die;
JFormHelper::loadFieldClass('list');
class JFormFieldYear extends JFormFieldList
{
protected $type = 'Year';
protected function getOptions()
{
$options = array();
$yearNow = date('Y');
for ($i = 1950; $i <= $yearNow; $i++)
{
$tmp = JHtml::_('select.option', $i, $i, 'value', 'text', false);
$options[] = $tmp;
}
reset($options);
return $options;
}
}
然后在你的xml类型中定义type =“year”而不是type =“list”这样的字段:
<field name="joinyear" type="year"
description="COM_USERS_REGISTER_JOINYEAR_LABEL"
filter="string"
label="COM_USERS_REGISTER_JOINYEAR_DESC"
message="COM_USERS_REGISTER_JOINYEAR_DESC"
required="true" />