【发布时间】:2012-03-29 16:23:04
【问题描述】:
事实证明 Zend Form 对我来说有点棘手,尽管我最近一直在使用它......
我有这个表格,我正在尝试为它动态创建几个复选框。一切正常,但我似乎无法更改“值”属性。
在我的 Zend 表单类中,我有这个 sn-p...
// psychotic symptoms
$this->addElement('checkbox', 'psychoticsymptom', array(
'label' => 'psychoticsymptom',
'name' => 'psychoticsymptom',
));
在我看来(phtml)我这样称呼它......
<div class="element">
<?php // Psychotic Symptoms
$Criteria = new Criteria();
$Criteria->add( DictionaryPeer::CATEGORY, 'MAR: Psychotic Symptoms' );
$Criteria->addAscendingOrderByColumn( 'Ordinal' );
$this->PsychoticSymptomsList = DictionaryPeer::doSelect( $Criteria );
foreach( $this->PsychoticSymptomsList as $Symptom ) {
$form->psychoticsymptom->setValue($Symptom->getDictionaryId());
$form->psychoticsymptom->setAttrib('name', $Symptom->getWord());
echo $Symptom->getDictionaryId(); // prove my id is coming through... (it is)
$form->psychoticsymptom->getDecorator('label')->setTag(null);
echo $form->psychoticsymptom->renderViewHelper();
$form->psychoticsymptom->setLabel($Symptom->getWord());
echo $form->psychoticsymptom->renderLabel();
echo '<br />';
}
?>
</div>
一切似乎都运行良好,除了每个复选框上的 value 属性呈现值“1”。我尝试将“setValue”行移动到几个不同的位置,以便在表单元素呈现之前设置值,但我没有运气让它工作。这对我来说是值得的,因为我需要在我的应用程序的许多领域进行相同类型的操作。我也会这样做有点不同,但我正在重构另一个应用程序并试图保持一些东西不变(例如数据库)。
非常感谢任何帮助 谢谢
【问题讨论】:
标签: php zend-framework zend-form