Это возможно.Что бы вы ни делали, вам нужно, чтобы каждая кнопка отправки принадлежала другой подчиненной форме или набору полей в главной форме.
Таким образом, кнопки отправки будут в пространстве имен, и вы сможете добавить их обек форме.
Каждая кнопка отправки будет иметь то же имя.Однако полное имя каждой кнопки отправки будет отличаться.
Например,
$likeSubform = new Zend_SubForm();
$dislikeSubform = new Zend_SubForm();
$like=new Zend_Form_Element_Image('vote');
$like->setImage($config->path->images."up.png")
->setValue(2);
$dislike=new Zend_Form_Element_Image('vote');
$dislike->setImage($config->path->images."down.png")
->setValue(1);
$likeSubform->addElement($like);
$dislikeSubform->addElement($dislike);
$form->addSubForm($likeSubform, 'like');
$form->addSubForm($dislikeSubform, 'dislike');
//===================================================
echo $form->getSubForm('like')->vote->getName();
//vote
echo $form->getSubForm('like')->vote->getFullyQualifiedName();
//like[vote]
К сожалению для вас, позже, когда вы создадите форму, декоратор ViewHelper
, который поставляется сZF будет отображать кнопку отправки, используя полное имя.(при условии, что вы используете этот декоратор, что делает большинство людей)
Однако вы можете затем создать свой собственный декоратор ViewHelper
, который переопределяет значение по умолчанию, таким образом визуализируя элемент формы с использованием безусловного имени вместо:
class My_Form_Decorator_ViewHelper extends Zend_Form_Decorator_ViewHelper
{
//override default render method
public function render($content)
{
...
$name = $element->getName();
$id = $element->getName();
...
}
}