Zend Form對我來說有點棘手,即使我最近也在使用它...如何在我的Zend表單複選框中設置'值'?
我有這種形式,我試圖爲它動態地創建幾個複選框。它工作正常,除了我似乎無法得到「值」屬性改變。
在我的Zend表單類我有這樣一段:
// 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>
一切似乎是工作很好,除了每個複選框上的值屬性都呈現爲'1'的值。我已經嘗試將'setValue'行移動到幾個不同的位置,以便在表單元素呈現之前設置該值,但我沒有運氣讓這個工作。這對我來說是值得的,因爲我需要在我的應用程序的許多方面進行相同類型的操作。我會做這個有點不同,但我重新考慮另一個應用程序,並試圖保持一些東西不變(例如數據庫)。
任何幫助大大appriciated 感謝
完全做到了!謝謝......我在'foreach'循環中將'setValue'改爲'setCheckedValue'。這也將解決其他部分中的相同問題,我知道我可以使它的行爲與舊應用程序完全相同,當然還有改進。他們有一定的侷限性,但它是一個醫療應用程序(如果你不能說:)),那些東西可能有點搞笑。再次感謝... – rhaag71 2012-03-29 08:58:38