如何在php中将zend表单元素添加到表单中?

如何在php中将zend表单元素添加到表单中?,php,zend-framework,foreach,zend-form,Php,Zend Framework,Foreach,Zend Form,我在zend表单中有一个foreach循环,在本例中,$this->args[1]的计数为5: foreach ($this->args[1] as $val) { $submitImage = new Zend_Form_Element_Image('submit_image'); $checkBox = new Zend_Form_Element_Checkbox('id_checkbox'); $this->addEl

我在zend表单中有一个foreach循环,在本例中,
$this->args[1]
的计数为5:

foreach ($this->args[1] as $val)
    {

        $submitImage = new Zend_Form_Element_Image('submit_image');
        $checkBox = new Zend_Form_Element_Checkbox('id_checkbox');

        $this->addElement( $submitImage ->setImage($val->full_path) );
        $this->addElement( $checkBox ->setValue($val->id) );
    }
我遇到的问题是,
$submitImage
$checkBox
被覆盖,我只得到每个元素中的一个元素,即最后一个元素

有没有办法让他们都出现

谢谢

我也试过:

$i=0;
foreach ($this->args[1] as $val)
    {

        $submitImage = 'submitImage'.$i;
            $checkBox = 'checkBox'.$i;

        $submitImage = new Zend_Form_Element_Image('submit_image');
        $checkBox = new Zend_Form_Element_Checkbox('id_checkbox');

        $this->addElement( $submitImage ->setImage($val->full_path) );
        $this->addElement( $checkBox ->setValue($val->id) );
    $i++;
    }

但它不起作用

您的元素名称必须不同

 $submitImage = new Zend_Form_Element_Image($submitImage);
 $checkBox = new Zend_Form_Element_Checkbox($checkBox);

你真的很接近,只需要小的修复。使元素名称唯一的任何操作

foreach ($this->args[1] as $val)
    {

        $submitImage = new Zend_Form_Element_Image('submit_image'. $val->id);
        $checkBox = new Zend_Form_Element_Checkbox('id_checkbox' . $val->id);

        $this->addElement( $submitImage ->setImage($val->full_path) );
        $this->addElement( $checkBox ->setValue($val->id) );
    }
或者如果你喜欢的话

$i=0;
foreach ($this->args[1] as $val)
    {

        $image = 'submitImage'.$i;
            $box = 'checkBox'.$i;

        $submitImage = new Zend_Form_Element_Image($image);
        $checkBox = new Zend_Form_Element_Checkbox($box);

        $this->addElement( $submitImage ->setImage($val->full_path) );
        $this->addElement( $checkBox ->setValue($val->id) );
    $i++;
    }
李亚丽有权这么做我只是说得更详细:)

[编辑]
更正了第二个循环中的变量冲突。

您必须为每个元素指定一个唯一的名称,或使用子窗体。看到第一个foreach工作了。第二个没有,因为某些原因,以防万一别人读到这个答案。非常感谢