如何解决Zend形式:显示单选框具有正确值时的元素
| 我正在忙于一个基于zend框架的新项目。我创建了以下表格:<?php
class Application_Form_User extends Zend_Form
{
public function init()
{
$this->setMethod(\'post\');
$this->setAttrib(\'class\',\'zf\');
$this->addElement(\'text\',\'username\',array(
\'label\' => \'Gebruikersnaam:\',\'required\' => true,\'filters\' => array(\'StringTrim\'),\'validators\'=>array(
array(\'Db_NoRecordExists\',false,array(
\'table\'=>\'user\',\'field\'=>\'username\'
)
))
));
$this->addElement(\'text\',\'name\',array(
\'label\' => \'Volledige naam:\',));
$this->addElement(\'text\',\'email\',array(
\'label\' => \'Email:\',\'validators\'=>array(
\'EmailAddress\',array(
\'Db_NoRecordExists\',\'field\'=>\'email\'
)
)
)
));
$this->addElement(\'password\',\'password1\',array(
\'label\' => \'Wachtwoord:\',));
$this->addElement(\'password\',\'password2\',array(
\'label\' => \'Wachtwoord (controle):\',\'validators\'=>array(array(\'Identical\',\'password1\'))
));
$this->addElement(\'radio\',\'type\',array(
\'label\'=>\'Gebruikers type:\',\'required\'=>true,\'multiOptions\'=>array(
\'consumer\'=>\'Klant\',\'admin\'=>\'Beheerder\'
)
));
$this->addElement(\'text\',\'mobile\',array(
\'label\' => \'Mobiel:\',));
$this->addElement(\'textarea\',\'address\',array(
\'label\' => \'Address:\',\'style\'=>\'width: 200px;height: 100px;\'
));
$this->addElement(\'submit\',\'submit\',array(
\'ignore\'=>true,\'label\'=>\'Toevoegen\'
));
$this->addElement(\'hash\',\'csrf\',array(
\'ignore\' => true,));
}
}
此表单具有一个单选按钮,其值为\'Consumer \'和\'Admin \'。我想要的是,当该值为\'Consumer \'时,将显示一些额外的字段,而当值为\'admin \'时,将显示其他元素。
因此,当值为“消费者”时,我想例如以下字段:消费者ID,消费者kvk号。当用户切换到管理单选按钮时,此字段必须消失。(因此必须为JS)
有没有一种方法可以在Zend Form中直接使用?还是我必须制作自己的HTML表单?
汤姆
解决方法
您可以进行如下操作:
public function init($data = false)
{
if (isset($data[\'type\']) && $data[\'type\'] == \'consumer\') {
// add element or hide element
}
}
在控制器中,您可以获取表格数据并将其传递给表格“ 2”;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。