Zend framework Zend#u Form can';t在循环中创建元素
就像在主题中一样,当元素在循环中创建时,我尝试创建一个表单:Zend framework Zend#u Form can';t在循环中创建元素,zend-framework,zend-form,Zend Framework,Zend Form,就像在主题中一样,当元素在循环中创建时,我尝试创建一个表单: foreach($aQuestionList as $aQuestionValue){ $aAnswerList = $oAnswerList->getListByQuestionId($aQuestionValue['newsletter_question_id']); $oNote = new SilverCms_Core_Form_Element_Note('note',array('v
foreach($aQuestionList as $aQuestionValue){
$aAnswerList = $oAnswerList->getListByQuestionId($aQuestionValue['newsletter_question_id']);
$oNote = new SilverCms_Core_Form_Element_Note('note',array('value'=>'<p>'.$aQuestionValue['newsletter_question_name'].'</p>'));
$this->addElement($oNote);
foreach($aAnswerList as $aAnswerValue){
$oCheckBox = new Zend_Form_Element_Checkbox('answer');
$oCheckBox->setLabel($aAnswerValue['newsletter_question_answer_name']);
$oCheckBox->isArray(true);
$oCheckBox->setCheckedValue($aAnswerValue['newsletter_question_answer_id']);
$this->addElement($oCheckBox);
}
}
foreach($aQuestionList为$aQuestionValue){
$aAnswerList=$oAnswerList->getListByQuestionId($aQuestionValue['newsletter\u question\u id');
$oNote=new SilverCms_Core_Form_Element_Note('Note',array('value'=>'。$aQuestionValue['newsletter_question_name'].);
$this->addElement($oNote);
foreach($aAnswerList作为$aAnswerValue){
$oCheckBox=新的Zend_表单_元素_复选框(“答案”);
$oCheckBox->setLabel($aAnswerValue['newsletter\u question\u answer\u name');
$oCheckBox->isArray(true);
$oCheckBox->setCheckedValue($aAnswerValue['newsletter\u question\u answer\u id');
$this->addElement($oCheckBox);
}
}
但是当我不想在视图中显示表单时
<?php echo $this->filterform;?>
它只显示数组aQuestionList中的最后一个元素,在第二个循环中也是同样的情况
致以最诚挚的问候您对每个答案复选框使用了相同的名称(“答案”),因此每个复选框都将覆盖上一个复选框。我认为您实际上需要Multicheckbox表单元素:
$answer = new Zend_Form_Element_MultiCheckbox('answer');
foreach($aAnswerList as $aAnswerValue){
$answer->addMultiOption($aAnswerValue['newsletter_question_answer_id'], $aAnswerValue['newsletter_question_answer_name']);
}
$this->addElement($answer);
这将为每个选项提供一个复选框和标签。您对每个答案复选框使用相同的名称(“答案”),因此每个选项都将覆盖上一个选项。我认为您实际上需要Multicheckbox表单元素:
$answer = new Zend_Form_Element_MultiCheckbox('answer');
foreach($aAnswerList as $aAnswerValue){
$answer->addMultiOption($aAnswerValue['newsletter_question_answer_id'], $aAnswerValue['newsletter_question_answer_name']);
}
$this->addElement($answer);
这将为每个选项提供一个复选框和标签。如果将$aAnswerList作为key=>值,则可以使用$answer->setMultiOptions($aAnswerList);)如果将$aAnswerList作为key=>value,则可以使用$answer->setMultiOptions($aAnswerList);)