【发布时间】:2010-04-07 09:16:49
【问题描述】:
对于我的 zend 表单,我想要一个月下拉和一年下拉。
我希望它们彼此相邻出现。可以将它们作为 zend_form 中的单独元素并在控制器中组合和检查它们,但对于设计,我希望它们彼此相邻。
我可以通过在年份上不设置标签然后做一些 css 技巧来实现这一点,但我想要一个更清洁的解决方案。
编辑,最终代码:
public function init($options=array()) {
$this->setName('add');
$this->setMethod('post');
$name = new Zend_Form_Element_Text('name');
$number = new Zend_Form_Element_Text('number');
$cvv = new Zend_Form_Element_Text('cvv');
$expiry_month = new Zend_Form_Element_Select('expiry_month');
$expiry_year = new Zend_Form_Element_Select('expiry_year');
$amount = new Zend_Form_Element_Select('amount');
$submit = new Zend_Form_Element_Submit('Submit');
$amounts = self::load_amounts();
$months = self::load_months();
$years = self::load_years();
$name->setLabel("Name On Card")->setIgnore(false)->setRequired(true);
$number->setLabel("Card Long Number")->setIgnore(false)->setRequired(true);
$cvv->setLabel("CVV2")->setIgnore(false)->setRequired(true);
$expiry_month->setMultiOptions($months);
$expiry_year->setMultiOptions($years);
$amount->setLabel("Amount")->setIgnore(false)->setRequired(true)->setMultiOptions($amounts);
$submit->setLabel("Submit")->setIgnore(true);
$this->addElements(array($name, $number, $cvv, $expiry_month, $expiry_year, $amount, $submit));
$this->addDisplayGroup(array('expiry_month', 'expiry_year'), 'Expires');
}
如果它对任何人都有帮助,我认为您不能设置标签,但您可以通过以下方式设置字段集标题:
$this->addDisplayGroup(array('address', 'city', 'state', 'country', 'zip'), 'Address', array('legend' => 'Billing Address'));
【问题讨论】:
-
无法弄清楚如何给一个组一个标签,le sigh!
标签: zend-form