根据一本书中的Zend教程,我创建了一个基本表单,并将其子类化了两次——一次用于编辑,一次用于创建。我应该如何创建仅查看版本?
所有"查看"详细信息与"编辑"版本相同,但我不希望用户能够编辑任何字段。
作为一个相关的问题,编辑版本中有一个字段我不希望用户能够编辑。实现这一目标的最佳方式是什么?javascript是答案吗?
嘿,如果你在基本表单中设置了所有字段,那么你可以这样做:
删除字段
<?php
Application_Model_Form_BaseForm extends Zend_Form {
public function init()
{
$this->addElement('text', 'baseElement', array('addDecoratorsInHere'));
}
}
Application_Model_Form_EditForm extends Application_Model_Form_BaseForm {
public function init()
{
parent::init();
$this->removeElement('baseElement');
}
}
禁用字段,仅查看
我自己从来没有这样做过,但我想你可以创建另一个表单,并将所有字段设置为禁用。
<?php
Application_Model_Form_EditForm extends Application_Model_Form_BaseForm {
public function init()
{
parent::init();
$this->getElement('baseElement')->addDecorator(array('disabled' => 'disabled'));
}
}
我希望这会有所帮助。
为了有一个"仅查看"表单,我已经将Edit表单子类化,并包含以下代码:
$allElements = $this->getElements();
foreach ($allElements as $element) {
$element->setAttrib('disabled', 'disabled');
}