问题描述
|
我正在使用扩展Zend_Form的类来构建表单,如何在表单中添加img标签,还需要添加一个类并对齐属性
这是我要达到的最终结果:
<span class=\"myElement\"><img src=\"myPath\" align=\"middle\" class=\"myClass\"/>
<input type=\"text\"></span>
我对Zend_Form_Element_Image \的文档了解不多
谢谢
路卡
解决方法
在库/应用程序/表格/元素/Img.php中
class Application_Form_Element_Img extends Zend_Form_Element_Xhtml
{
public $helper = \'formImg\';
public function loadDefaultDecorators ()
{
parent::loadDefaultDecorators ();
$this->removeDecorator (\'Label\');
$this->removeDecorator (\'HtmlTag\');
$this->addDecorator(\'HtmlTag\',array (
\'tag\' => \'span\',\'class\' => \'myElement\',));
}
}
在application / view / helpers / FormImg.php中
class Zend_View_Helper_FormImg extends Zend_View_Helper_FormElement
{
public function formImg ($name,$value,$attribs = null)
{
$info = $this->_getInfo($name,$attribs);
$xHtml = \'<img\'
. $this->_htmlAttribs ($attribs)
. \' />\';
return $xHtml;
}
}
以您的形式:
$this->addElement (\'img\',\'myimage\',array (
\'src\' => \'/images/download.png\',\'align\' => \'right\',));
注意:在您的特定应用程序中,路径可能会更改。
,实际上,您不需要自定义元素即可执行此操作。您可以使用HtmlTag装饰器并使用openOnly选项。
$form = new Zend_Form();
$form->addElement(\"text\",\"foo\",array(\"decorators\" => array(
array(array(\"img\" => \"HtmlTag\"),array(
\"tag\" => \"img\",\"openOnly\" => true,\"src\" => \"myPath\",\"align\" => \"middle\",\"class\" => \"myClass\"
)),array(\"ViewHelper\"),array(array(\"span\" => \"HtmlTag\"),array(
\"tag\" => \"span\",\"class\" => \"myElement\"
))
)));
echo $form->foo;
,嗨,您可以创建一个名为\“ html \”的自定义元素
class Zend_Form_Element_Html extends Zend_Form_Element_Xhtml
{
public $helper = \'formHtml\';
}
现在您可以调用它:
$yourForm->addElement(
\'html\',\'myElementId\',array(
\'value\'=>\'<span class=\"myElement\"><img src=\"myPath\" align=\"middle\" class=\"myClass\"/>
<input type=\"text\"></span>\'))
有关更多信息,您可以检查以下链接:
Zend Framework:在我的表单中插入DIV和图像