Zend_Form не может создать элемент в цикле - PullRequest
0 голосов
/ 23 марта 2012

Как и в теме, я пытаюсь создать форму, когда элементы создаются в цикле:

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

Но когда я хочу отобразить форму в поле зрения

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

это отображение только последнего элемента в массиве aQuestionList и такая же ситуация во втором цикле С наилучшими пожеланиями

1 Ответ

4 голосов
/ 23 марта 2012

Вы используете одно и то же имя («ответ») для каждого флажка ответа, поэтому каждый из них будет отменять предыдущий.Я думаю, что вы действительно хотите элемент формы 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);

, это даст вам флажок и метку для каждого параметра.

...