如何在PHP中添加zend表单元素到窗体中?
问题描述:
我在我的Zend形式的foreach循环,在这种情况下,$this->args[1]
有5计数:如何在PHP中添加zend表单元素到窗体中?
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++;
}
,但它不工作
答
你真的很接近,只需要小修复。任何使元素名称独特的东西。
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++;
}
Liyali有它,我只是更详细的:)右
[编辑] 修正变量在第二循环的碰撞。
+0
第一个foreach工作。第二个没有出于某种原因,以防其他人读这个答案。非常感谢 – Patrioticcow 2012-02-27 17:15:26
答
你的元素名称必须是不同。
$submitImage = new Zend_Form_Element_Image($submitImage);
$checkBox = new Zend_Form_Element_Checkbox($checkBox);
您将不得不为每个元素指定一个唯一的名称,或使用子表单。见http://stackoverflow.com/questions/405897/zend-form-array-based-elements – drew010 2012-02-25 02:24:51