2012-03-23 5 views
0

で要素を作成することはできません。Zend_Formでは、ちょうど私は要素がループで作成するときにフォームを作成してみてくださいトピックに似たループ

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); 
     } 
    } 

をしかし、私はビューでフォームを表示するwhantとき

<?php echo $this->filterform;?> 

それは、配列aQuestionListで唯一の最後の要素の表示だと同じような状況は、第二のループに よろしく

答えて

4

であるあなたは、各ので、各回答のチェックボックスに同じ名前(「答え」)を使用しています前のものを上書きします。私はあなたが実際に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); 

これはあなたに各オプションのチェックボックスとラベルを与えます。

+0

さらに、$ aAnswerListをkey =>値として使用している場合は、$ answer-> setMultiOptions($ aAnswerList);)を使用できます。 –

関連する問題